我的 C# 应用程序具有以下 json,该 json 反序列化为分配给 values
的字典:
{
"armSpan": 1.8081974983215332,
"handPosition": {
"x": 1.23,
"y": 1.74,
"z": 2.05,
}
}
这是反序列化的代码:
var values = JsonConvert.DeserializeObject<Dictionary<string, string>>(response);
我想将其中的数据分配给我的 Size
模型中的各个字段。对于 armSpan
,我很高兴以下方法有效:
size.ArmSpan = decimal.Parse(values["armSpan"]);
我不知道如何获得 x、y 和 z 的值。应该是这样的
size.HandPosX = decimal.Parse(values["handPosition"]["x"]);
或
size.HandPosX = decimal.Parse(values["handPosition"].["x"]);
答案 0 :(得分:2)
有在线转换器可以根据您的 json 生成 c# 代码(搜索“JSON to C#”)。使用其中之一,我根据您提供的 json 创建了这些类(删除了 '"z": 2.05,' 中的多余逗号):
public partial class ClassYouDeserializeTo
{
[JsonProperty("armSpan")]
public double ArmSpan { get; set; }
[JsonProperty("handPosition")]
public HandPosition HandPosition { get; set; }
}
public partial class HandPosition
{
[JsonProperty("x")]
public double X { get; set; }
[JsonProperty("y")]
public double Y { get; set; }
[JsonProperty("z")]
public double Z { get; set; }
}
您可以像这样使用它们:
var values = JsonConvert.DeserializeObject<ClassYouDeserializeTo>(response);