2009-11-12 2 views
4

Есть ли простой/элегантный парсер для работы с JSON в C#? Как насчет фактической сериализации/десериализации в объекты C#?Как обрабатывать JSON в C#?

+1

В качестве дополнения к этому вопросу, можно ли утверждать, 'ли System.Web.Script.Serialization.JavaScriptSerializer' применимо к этому вопросу (HTTP://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(loband).aspx)? Мне очень любопытно. –

ответ

8

JSON.Net довольно хорошая библиотека

+0

JSON.Net полностью, делает работу с json намного проще – RC1140

2

См

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx

В принципе вы можете использовать модель 'контракта данных' (который часто используется для WCF XML-сериализации) для JSON, а также. Я нашел, что это довольно быстро и легко использовать автономно для небольших задач.

Также проверьте этот образец:

http://msdn.microsoft.com/en-us/library/bb943471.aspx

1

Там в DataContractJsonSerializer класс.

Deserialize:

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(MyObject)); 
Stream s = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json_string)); 
MyObject obj = ser.ReadObject(s) as MyObject; 

Serialize:

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(MyObject)); 
Stream s = new MemoryStream(); 
MyObject obj = new MyObject { .. set properties .. }; 
ser.WriteObject(s, obj); 
s.Seek(SeekOrigin.Begin); 
var reader = new StreamReader(s); 
string json_string = reader.ReadToEnd(); 
3
var jss = new JavaScriptSerializer(); 
var data = jss.Deserialize<dynamic>(jsonString); 

Не забывайте ссылаться на «System.Web.Extensions»