![](/img/trans.png)
[英]Accessing a certain variable inside a json without creating a deserialization class
[英]Creating a class for JSON deserialization
考虑以下JSON:
{
"Code": 2,
"Body": {
"Dynamic-Key": {
"Key1": "Val1",
"Key2": "Val2"
}
}
}
定义以下类结构:
[DataContract]
class JsonResponse
{
[DataMember]
public string Code { get; set; }
[DataMember]
public JsonResponseBody Body { get; set; }
}
[DataContract]
class JsonResponseBody
{
[DataMember(Name = "Dynamic-Key")]
public DynamicKeyData Data { get; set; }
}
[DataContract]
class DynamicKeyData
{
[DataMember]
public string Key1 { get; set; }
[DataMember]
public string Key2 { get; set; }
}
我可以使用以下代码反序列化给定的JSON:
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(JsonResponse));
JsonResponse responseData = serializer.ReadObject(responseStream) as JsonResponse;
但是在我的情况下, “动态键”是未知的,由用户输入值定义。 处理这种JSON定义的正确方法是什么?
注意事项:
JSON是第三方Api的,因此无法更改。
就我而言,我不在乎动态键名称,因此,如果有一个选项始终映射到一个通用名称,它将可以完成工作。
提前致谢。
将JSON存储在假设在strResult中的字符串中。 然后,可以按如下所示将其反序列化为JsonResponse对象:
JsonConvert是Newtonsoft.Json.JsonConvert dll中的类。 您可以按以下方式使用它:
JsonResponse object= (JsonResponse)JsonConvert.DeserializeObject(strResult, typeof(JsonResponse));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.