Решение, которое сработало для меня:
Сериализованный класс и свойства будут оформлены следующим образом:
[DataContract]
public class MyDataClass
{
[DataMember(Name = "LabelInJson", IsRequired = false)]
public string MyProperty { get; set; }
}
IsRequired был ключевым элементом.
Фактическая сериализация может быть выполнена с помощью DataContractJsonSerializer:
public static string Serialize<T>(T obj)
{
string returnVal = "";
try
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, obj);
returnVal = Encoding.Default.GetString(ms.ToArray());
}
}
catch (Exception /*exception*/)
{
returnVal = "";
//log error
}
return returnVal;
}
Вы можете использовать Представление знаний & amp; Доступ к функциям , таким как Entity
и EntityValue
. Все результаты соответствуют версии 11.3.
Сначала запросите все объекты, у которых есть "phys"
в названии, как в «физическом» или «физическом».
Select[StringContainsQ["phys", IgnoreCase -> True]]@EntityValue[]
blockquote>{"FamousPhysicsProblem", "PhysicalConstant", "PhysicalSystem"}
Возвращает три типа сущностей, где
"PhysicalConstant"
является лучшей ставкой. Свойства, доступные для этих объектов:Все можно вернуть с помощью
EntityValue["PhysicalConstant", "Name"]
Для конкретного объекта для гравитации Земли.
EntityProperties["PhysicalConstant"]
blockquote>{"AbbreviationCode", "AlternateNames", "ASCIIDescription", "Classes", "ConjecturedValues", "Description", "EqualMagnitudeConstants", "EquivalentForms", "ExternalLink", "LevyLeblondClass", "Name", "PrimarySource", "Quantity", "SeriesExpansionValues", "StandardUncertainty", "StandardYear", "Value", "Values", "Variants", "VariantTable"}
Свойство
"Classes"
выглядит полезным.DeleteDuplicates@Flatten@Join@EntityValue["PhysicalConstant", "Classes"]
blockquote>{"Acceleration", "Cosmological", "Atomic", "CODATA", "Mass", "Particle", "Spectral", "Astronomical", "Distance", "IAU", "Radius", "Chemical", "Thermal", "Electric", "Dimensionless", "Exact", "Force", "Frequency", "Magnetic", "Momentum", "Pressure", "Temperature", "Time", "Speed", "WolframLegacyPackage", "Thermodynamic", "AstronomicalAlmanac", "MassRatio", "CGPM", "Quantum", "Gravitational", "Natural", "ForceRatio", "Coupling", "Radiation", "Energy", "SolidState", "Length", "Area", "Volume", "ParticleDataGroup", "Angle"}
"Acceleration"
кажется лучшей ставкой.a = EntityClass["PhysicalConstant", {"Classes" -> "Acceleration"}] EntityValue[a, "EntityCount"]
blockquote>3
EntityList[a]
blockquote>{"AccelerationAssociatedWithCosmologicalExpansionRate", "MONDConstant", "StandardAccelerationOfGravity"}
Теперь объект можно выбрать с помощью
grav = Entity["PhysicalConstant", "StandardAccelerationOfGravity"]
, затем
[ 1112]blockquote>Quantity[196133/20000, "Meters"/"Seconds"^2]
grav["ExternalLink"]
http://physics.nist.gov/cgi-bin/cuu/Value?gn
< / blockquote>Надеюсь, это поможет.