1

我尝试将 json 字符串反序列化为带有Newtonsoft.Json. 但JsonConvert.DeserializeObject()总是返回 null。

string json2 = "[{ 'id':1,'date':'2016-05-10T03:48:21','date_gmt':'2016-05-10T03:48:21','guid':{ 'rendered':'http://test.de/?p=1'},'modified':'2019-02-27T11:56:21'}]";

List<Product> myProducts = new List<Product>();

myProducts = JsonConvert.DeserializeObject<List<Product>>(json2); // allways null!?

我猜原因在于课堂MyGuidRendered永远不会到达属性的设置者。

我已在此处阅读有关此主题的所有问题,但没有找到我问题的正确答案。

这是整个代码示例:

namespace JsonToObject
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            string json2 = "[{ 'id':1,'date':'2016-05-10T03:48:21','date_gmt':'2016-05-10T03:48:21','guid':{ 'rendered':'http://test.de/?p=1'},'modified':'2019-02-27T11:56:21'}]";

            List<Product> myProducts = new List<Product>();

            myProducts = JsonConvert.DeserializeObject<List<Product>>(json2); // allways null!
        }
    }

    public class Product
    {
        [JsonProperty("id")]
        public int Id { get; set; }

        [JsonProperty("date")]
        public string Date { get; set; }

        [JsonProperty("date_gmt")]
        public string Date_gmt { get; set; }

        [JsonProperty("guid")]
        public MyGuid MyGuid { get; set; }

        [JsonProperty("modified")]
        public string Modified { get; set; }
    }


    public class MyGuid
    {
        [JsonProperty("rendered")]
        public string Rendered { get; set; } // not reached!
    }

}

谁能帮我?

4

1 回答 1

-1

JsonConvert.DeserializeObject()总是返回 null。

您的代码没有问题。通常这会返回一个 json 数组对象。

在此处输入图像描述

如果myProducts直接检查,那么它是一个数组对象,需要指定数组中的哪个元素,可以获取哪个属性Rendered

由于您的 json 数组仅包含一个对象,因此 Rendered 可以这样编写:

myProducts[0].MyGuid.Rendered

然后这将返回:

http://test.de/?p=1

所有参数获取如下:

myProducts//------ System.Collections.Generic.List`1[App1.Views.MainPage+Product]
myProducts[0].Id //------1
myProducts[0].Date//------2016-05-10T03:48:21
myProducts[0].Date_gmt//------2016-05-10T03:48:21
myProducts[0].Modified//------2019-02-27T11:56:21
myProducts[0].MyGuid.Rendered//------http://test.de/?p=1

如果也有问题,您可以分享解决方案的链接。我会检查它。

于 2019-03-15T08:49:52.730 回答