C#反序列化动态JSON

C#反序列化动态JSON,第1张

C#反序列化动态JSON

这是我在生产代码中使用的一种方法。它可能并不完美,但是可以完成工作。

using using System.Web.script.Serialization;// .....    public object GetJson(string url)    {        var json = Get(url); // I have pre that makes this work, it gets a JSON string        try        { var deserializer = new JavascriptSerializer(); var result = deserializer.DeserializeObject(json); return result;        }        catch (ArgumentException e)        { // Error handling....        }     }

您收到的对象将是通用Map,List或其他取决于JSON结构的对象。如果您知道期望使用什么结构,那么无需编写自定义解析器或目标对象类型就非常有用。

然后,您可以枚举Map的键,例如,找到变化的键。然后,包装程序或转换程序将为其余的应用程序层提供一致的API。就像是:

public class Order {     public string OrderNum { private set; get; }     public string ShortDesc { private set; get; }     public string Desc { private set; get; }     public static Order FromJson(object jsonResult)      {          var m = jsonResult as Map<string, object>;          // Handle errors, but I am not          var firstPair = m.First();          var detail = firstPair.Value as Map<string, object>;          var dummy = new Order()          {   OrderNum = firstPair.Key,   ShortDesc = detail["short_description"].ToString();   Desc = detail["detail_description"].ToString();          }          return dummy;     }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5622958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存