使用 Json.Net 在 C# 中解析 Json [英] Json Parsing in c# using Json.Net

查看:29
本文介绍了使用 Json.Net 在 C# 中解析 Json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

{"Posts":
          [{"id":"1",
            "title":"Bibidh prothom khondo",
            "content":"sjih sdkljjdsf kdjsfjks",
            "author":"","last_update":"23 june 2013",
            "Comments":
                [{"id":"1",
                  "content":"sjih sdkljjdsf kdjsfjks",
                  "author":"","last_update":"23 june 2013"}]},
            {"id":"2",
             "title":"Bibidh prothom khondo",
             "content":"sjih sdkljjdsf kdjsfjks",
             "author":"",
             "last_update":"24 june 2013",
             "Comments":[{"id":"1","content":"sjih sdkljjdsf kdjsfjks","author":"","last_update":"23 june 2013"}]},{"id":"3","title":"Bibidh prothom khondo","content":"sjih sdkljjdsf kdjsfjks","author":"","last_update":"25 june 2013"}]}

我正在尝试解析这个 json.&为此,我的代码是:

I am trying to parse this json. & For this I my code is:

public class Attributes
    {
        [JsonProperty("id")]
        public string ID { get; set; }
        [JsonProperty("title")]
        public string TITLE { get; set; }
        [JsonProperty("content")]
        public string CONTENT { get; set; }
        [JsonProperty("author")]
        public string AUTHOR { get; set; }
        [JsonProperty("last_update")]
        public string LAST_UPDATE { get; set; }
        [JsonProperty("Comments")]
        public string[] COMMENTS { get; set; }
    }

    public class DataJsonAttributeContainer
    {
        public List<Attributes> attributes { get; set; }
    }

    public static T DeserializeFromJson<T>(string json)
    {
        T deserializedProduct = JsonConvert.DeserializeObject<T>(json);
        return deserializedProduct;
    }

我已经尝试了以下两种方式:

I have tried both of this following way:

var container = DeserializeFromJson<DataJsonAttributeContainer>(e.Result);

&var container = DeserializeFromJson>(e.Result);

Json 字符串下载完全正常,但程序在从 json 字符串反序列化时崩溃.我想,我在这里犯了一个非常愚蠢的错误&我想不明白.任何人都可以在这方面帮助我吗?提前致谢.

Json string sownloads completely fine but program crashes in while deserializing from json string. I guess, I have made a very silly mistake here & I can not figure it out. Can anyone please help me in this regard? Thanks in advance.

推荐答案

如果你想反序列化,你只是在反序列化时排除Posts> Posts 的内部项目,比你必须在 deserialization 中提到它

u are simply excluding Posts when deserializing, if u want to deserialize inner items of Posts, than u have to mention it in deserialization

试试这个:

var parsed = JObject.Parse(e.Result);
var container = DeserializeFromJson<List<Attributes>>(parsed["Posts"]);

var parsed = JsonSerializer.DeserializeFromString<Dictionary<string,string>>(e.Result);
var container = DeserializeFromJson<List<Attributes>>(parsed["Posts"]);

这篇关于使用 Json.Net 在 C# 中解析 Json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆