如何使用DataContractJsonSerializer解析嵌套的json对象?

Chipbk10

我有一个像这样的json文本:

{
    "response":200,
    "result":
  {
      "package":
    {
      "token":"aaa"
    }
  }
}

我正在使用DataContractJsonSerializer从上面的json中提取信息。

public static T Deserialize<T>(string json)
{
    var instance = Activator.CreateInstance<T>();
    using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
    {
         var serializer = new DataContractJsonSerializer(instance.GetType());
         return (T)serializer.ReadObject(ms);
    }
}

我将这些类描述如下:

[DataContract]
class IttResponse
{
    [DataMember(Name = "response")]
    public int Response { get; protected set; }

    [DataMember(Name = "result")]
    public string Result { get; protected set; }
}

[DataContract]
public class IttPackage
{

    [DataMember(Name = "token")]
    public string Token { get; set; }
}

现在,我尝试解析json文本,如下所示:

IttResponse response = Deserialize<IttResponse>(jsonText);
IttPackage package = Deserialize<IttPackage>(response.token);

但是,在第一行解析jsonText时,我总是会出错。

注意:我正在开发在用C#,VS Ultimate 2013,.Net Framework 4.5编写的桌面上运行的应用程序

因此,我认为我无法使用System.Web.HelpersSystem.Web.Script.Serialization进行解析。

史蒂文·里肯斯(Steven Liekens)

序列化引擎了解复杂的类型。一种DataContract类型引用另一种DataContract类型是安全的。

(编辑:我不确定是否允许受保护的二传手)

[DataContract]
class IttResponse
{
    [DataMember(Name = "response")]
    public int Response { get; protected set; }

    [DataMember(Name = "result")]
    public IttResult Result { get; protected set; }
}

[DataContract]
public class IttResult
{
    [DataMember(Name = "package")]
    public IttPackage Package { get; set; }
}

[DataContract]
public class IttPackage
{
    [DataMember(Name = "token")]
    public string Token { get; set; }
}

用法与以前相同

IttResponse response = Deserialize(jsonText);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 DataContractJsonSerializer 解析具有可变键名的 json 对象

如何使用DataContractJsonSerializer反序列化嵌套的json?

如何使用GSON解析多个嵌套的JSON对象/数组?

如何使用jq将JSON解析为单个嵌套对象?

如何使用 Retrofit/Moshi 解析嵌套的 JSON 对象

如何在使用 Jackson 时解析嵌套的 json 对象

如何解析嵌套 json 对象的元素?

如何解析JSON嵌套对象?

使用Volley解析嵌套的JSON对象

解析嵌套的 JSON 对象

如何使用 jsondecoder 解析嵌套的 json

如何使用骨干解析嵌套的json?

如何使用GSON解析嵌套的JSON

如何使用Retrofit ....解析嵌套的json?

如何在Google Apps脚本中使用嵌套数组解析JSON对象

如何使用python获取(解析)Json嵌套字符串(来自API)数据,如对象

如何使用 Gson 解析深层嵌套 json 对象中的字段并在 android 中进行改造?

如何使用Flutter中的json解析的嵌套地图列表中的函数创建对象

使用DataContractJsonSerializer从JSON数据填充对象数组时出错

无法使用DataContractJsonSerializer将对象序列化为JSON

解析包含嵌套对象的JSON

无法解析嵌套的 JSON 对象

快速解析嵌套的json对象

Javascript解析嵌套的JSON对象

如何解析对Java对象列表的嵌套JSON响应

如何在Spark SQL中解析嵌套的JSON对象?

Retrofit 2.0如何解析嵌套的JSON对象?

如何解析嵌套JSON对象中的内部字段

如何解析嵌套在spark中的Json对象