【问题标题】:Convert JSON object to a list of objects C#将 JSON 对象转换为对象列表 C#
【发布时间】:2015-08-12 12:48:58
【问题描述】:

我有一个将 JSON 对象转换为特定列表的 Web api 服务:

这是模型类:

public class rest_all_data
{
    public string RestaurantName { get; set; }
    public string CategoryName { get; set; }
    public string FourSquareID { get; set; } 
}


public class rest_collection 
{
    public List<rest_all_data> rest_all_data { get; set; }
} 

这里是服务:

public void AddRestaurantMultiple([FromBody] JObject rest_all)
{
    string k = rest_all.ToString();
    rest_collection result = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<rest_collection>(k); 
}

这里是 json 对象:

"restaurants" : [{"RestaurantName":"a","CategoryName":"b","FourSquareID":"c"},{"RestaurantName":"d","CategoryName":"e","FourSquareID":"f"}]

rest_all 对象始终带有数据,k 字符串也是成功的,但 result 变量始终为空...

【问题讨论】:

  • 你为什么打电话给JObject.ToString?格式化 JSON 只是为了再次解析它似乎很奇怪...... JSON 是什么样的?
  • 这里 json 对象的样子 "restaurants" : [{"RestaurantName":"a","CategoryName":"b","FourSquareID":"c"},{"RestaurantName":"d","CategoryName":"e","FourSquareID":"f"}]
  • 把它放在问题中,最好把整个事情做成一个简短但完整的程序来展示问题,就像我让你last time...
  • @JonSkeet...我添加了它...您对我的问题有什么解决方案吗?
  • 好吧,您还没有添加一个简短但完整的程序来演示该问题,并且 JSON 不是一个对象 - 它不是以 { 开头并以 } 结尾的。哦,还有一个问题,你的收藏似乎被称为restaurants,而不是rest_all_data

标签: c# asp.net json web-services


【解决方案1】:

试试吧,我对你的代码做了一些改动

    public class rest_collection
    {
        public IEnumerable<rest_all_data> rest_all_datas { get; set; }
    }

    public void AddRestaurantMultiple([FromBody] JObject rest_all)
    {
        string k = rest_all.ToString();
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        rest_collection collection = serializer.Deserialize<rest_collection>(k);
    }

【讨论】:

    【解决方案2】:

    尝试:

    public void AddRestaurantMultiple([FromBody] string rest_all)
    {
        var obj = JsonConvert.DeserializeObject<rest_collection>(rest_all);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      相关资源
      最近更新 更多