JSON.NET c#访问反序列化对象
本文关键字:反序列化 对象 访问 NET JSON | 更新日期: 2023-09-27 17:54:20
我有一些JSON数据,我已经设法获得并放置在一个动态类型。
是JSON的样子。
{"fruits":{"a":"orange","b":"banana","c":"apple"},"numbers":[1,2,3,4,5,6],"holes":{"0":"first","5":"second","6":"third"}}
是我如何使用动态类型收集它的。
dynamic myObj =JsonConvert.DeserializeObject(output);
我需要找到一种方法来分离对象并放置在某种数组中,以便我可以获得值。假设我想要控制数组,并在某种循环中访问所有的值。
如有任何建议,不胜感激。
谢谢
看看System.Web.Script.Serialization.JavaScriptSerializer
您可以将JSON字符串反序列化为强类型类,如下所示:
数据类:
public class AutocompleteAction
{
public String action { get; set; }
}
你会有嵌套类。然后语法看起来类似于使用json解析google maps geocode json对对象的响应。净
使用:
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
//
}
最后我使用了Json.NET。希望对某人有用。我很喜欢评论和批评,因为可能有更好的方法。
string output = writeClient.Get<string>("mykey");
JObject myObj = (JObject)JsonConvert.DeserializeObject(output);
JObject fruits = myObj["fruits"] as JObject;
JObject holes = myObj["holes"] as JObject;
foreach (var fruit in fruits)
{
MyTestClass myClass = new MyTestClass();
myClass.myKey = fruit.Key;
myClass.myVal = fruit.Value.ToString();
}
JToken nums = myObj["nums"];
IEnumerable<string> allString = nums.Children().Values<string>();
foreach (var myVal in allString)
{
// do something..
}