2013-02-05 29 views
-2
string jsondata = @"{""meta"":{""code"":200}}"; 
dynamic json = JsonConvert.DeserializeObject(jsondata); 

我有上面的JSON数据,我创建了它的类。我也反序列化 - 我怎么能重复这个JSON变量json.net与C锐

public class Meta 
{ 
    public int code { get; set; } 
} 

public class RootObject 
{ 
    public Meta meta { get; set; } 
} 
+0

的问题就是有这个代码不清楚...... –

+2

OP想要将json字符串反序列化为.NET对象。这可能有所帮助:http://stackoverflow.com/questions/10534576/json-net-deserializing –

回答

1

要与您的代码工作,你应该用户类型化转换

string jsondata = @"{""meta"":{""code"":200}}"; 
Meta json = JsonConvert.DeserializeObject<Meta>(jsondata); 

然后你就可以ACCES所有成员在元OBJ 。


正常的.NET JSON运行时,你可以反序列化字符串

string jsondata = @"{""meta"":{""code"":200}}" 
Meta meta = JsonHelper.JsonDeserialize<Meta>(jsondata); 

欲了解更多信息请参阅http://www.codeproject.com/Articles/272335/JSON-Serialization-and-Deserialization-in-ASP-NET

你需要OFC

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Runtime.Serialization.Json; 
using System.IO; 
using System.Text; 
/// <summary> 
/// JSON Serialization and Deserialization Assistant Class 
/// </summary> 
public class JsonHelper 
{ 
    /// <summary> 
    /// JSON Serialization 
    /// </summary> 
    public static string JsonSerializer<T> (T t) 
    { 
     DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); 
     MemoryStream ms = new MemoryStream(); 
     ser.WriteObject(ms, t); 
     string jsonString = Encoding.UTF8.GetString(ms.ToArray()); 
     ms.Close(); 
     return jsonString; 
    } 
    /// <summary> 
    /// JSON Deserialization 
    /// </summary> 
    public static T JsonDeserialize<T> (string jsonString) 
    { 
     DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); 
     MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); 
     T obj = (T)ser.ReadObject(ms); 
     return obj; 
    } 
} 
+0

好东西,谢谢你的详细解释 –

+0

@RuiJarimba不客气 – Frederiek