首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Newtonsoft.Json如何解析json?json字符的格式不是固定的,所以没法写一个对应的类

2012-04-10 
Newtonsoft.Json怎么解析json?json字符的格式不是固定的,所以没法写一个对应的类我上网查了一下,感觉都是

Newtonsoft.Json怎么解析json?json字符的格式不是固定的,所以没法写一个对应的类
我上网查了一下,感觉都是先写一个相对应的类,然后直接序列化或反序列化成这个类。
但是我现在碰到的情况是,json字符的格式不是固定的,所以没法写一个对应的类。
请问有没有好解析xml相类似的解析方法?
谢谢!

[解决办法]
Newtonsoft.Json.Linq.JObject
Newtonsoft.Json.Linq.JArray
[解决办法]
我的做法是把Json的内容反序列化到一个自定义的字典类里,这个字典类需要标识为可序化(SerializableAttribute),并且提供了自定义序列化的行为,也就是实现了ISerializable接口,提供了一个专供反序列化使用的构造函数(protected MyClass(SerializationInfo info, StreamingContext context))。然后用System.Runtime.Serialization.Json.DataContractJsonSerializer来序列化和反序列化JSON文本。
[解决办法]

C# code
var mJObj = JObject.Parse(json);var mName = (JArray)mJObj["Result"];            for(var i=0;i<mName.Count;i++)            {                var tmpObj = (JObject)mName[i];                var tmpID = (string)tmpObj["Id"];            }            var mSize = (int)mJObj["size"];
[解决办法]
探讨

我的做法是把Json的内容反序列化到一个自定义的字典类里,这个字典类需要标识为可序化(SerializableAttribute),并且提供了自定义序列化的行为,也就是实现了ISerializable接口,提供了一个专供反序列化使用的构造函数(protected MyClass(SerializationInfo info, StreamingContext context))。然后用Syste……

[解决办法]

using System.Runtime.Serialization;
C# code
   public string Serialize<T>(T data)          {              using (var memoryStream = new MemoryStream())              {                 var serializer = new DataContractSerializer(typeof(T));                  serializer.WriteObject(memoryStream, data);                  memoryStream.Seek(0, SeekOrigin.Begin);                 var reader = new StreamReader(memoryStream);                 string content = reader.ReadToEnd();                 return content;              }         }         public T Deserialize<T>(string xml)         {              using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(xml)))              {                  var serializer = new DataContractSerializer(typeof(T));                  T theObject = (T)serializer.ReadObject(stream);                  return theObject;             }          }
[解决办法]
探讨
using System.Runtime.Serialization;
C# code

public string Serialize<T>(T data)
{
using (var memoryStream = new MemoryStream())
{
var serial……

[解决办法]
探讨

我的做法是把Json的内容反序列化到一个自定义的字典类里,这个字典类需要标识为可序化(SerializableAttribute),并且提供了自定义序列化的行为,也就是实现了ISerializable接口,提供了一个专供反序列化使用的构造函数(protected MyClass(SerializationInfo info, StreamingContext context))。然后用Syste……

热点排行