日期:2014-05-17  浏览次数:21132 次

在C#中怎么解析JSON数据,并获取到其中的值?
在C#中怎么解析JSON数据,并获取到其中的值?
比如JSON数据为:{"phantom":true,"id":"ext-record-10","data":{"MID":1019,"Name":"aaccccc","Des":"cc","Disable":"启用","Remark":"cccc"}}。
我想得到结果为{"MID":1019,"Name":"aaccccc","Des":"cc","Disable":"启用","Remark":"cccc"}的字符串。

------解决方案--------------------
下面的内容没有验证过,仅供参考

I don't know about JSON.NET, but it works fine with JavaScriptSerializer from System.Web.Extensions.dll (.NET 3.5 SP1):

using System.Collections.Generic; 
using System.Web.Script.Serialization; 
public class NameTypePair 

    public string OBJECT_NAME { get; set; } 
    public string OBJECT_TYPE { get; set; } 

public enum PositionType { none, point } 
public class Ref 

    public int id { get; set; } 

public class SubObject 

    public NameTypePair attributes { get; set; } 
    public Position position { get; set; } 

public class Position 

    public int x { get; set; } 
    public int y { get; set; } 

public class Foo 

    public Foo() { objects = new List<SubObject>(); } 
    public string displayFieldName { get; set; } 
    public NameTypePair fieldAliases { get; set; } 
    public PositionType positionType { get; set; } 
    public Ref reference { get; set; } 
    public List<SubObject> objects { get; set; } 

static class Program 

 
    const string json = @"{ 
  ""displayFieldName"" : ""OBJECT_NAME"",  
  ""fieldAliases"" : { 
    ""OBJECT_NAME"" : ""OBJECT_NAME"",  
    ""OBJECT_TYPE"" : ""OBJECT_TYPE"" 
  },  
  ""positionType"" : ""point"",  
  ""reference"" : { 
    ""id"" : 1111 
  },  
  ""objects"" : [ 
    { 
      ""attributes"" : { 
        ""OBJECT_NAME"" : ""test name"",  
        ""OBJECT_TYPE"" : ""test type"" 
      },  
      ""position"" :  
      { 
        ""x"" : 5,  
        ""y"" : 7