栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C#反序列化动态JSON

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;     }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号