Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用Newtonsoft.JSON反序列化列表_C#_Json_Deserialization - Fatal编程技术网

C#使用Newtonsoft.JSON反序列化列表

C#使用Newtonsoft.JSON反序列化列表,c#,json,deserialization,C#,Json,Deserialization,我目前正在尝试反序列化产品列表,并且总是收到反序列化结果的null。我已经回顾了使用Newtonsoft.JSON序列化和反序列化集合的方法,但仍在努力寻找发生这种情况的原因。在我当前的尝试中,我正在创建一个包装类products,用于保存我的产品列表。请参见下面的简单JSON示例和模型类: JSON示例 { "products":[ { "title":"Some title", "id":123, "shor

我目前正在尝试反序列化产品列表,并且总是收到反序列化结果的
null
。我已经回顾了使用Newtonsoft.JSON序列化和反序列化集合的方法,但仍在努力寻找发生这种情况的原因。在我当前的尝试中,我正在创建一个包装类
products
,用于保存我的产品列表。请参见下面的简单JSON示例和模型类:

JSON示例

{  
   "products":[  
      {  
         "title":"Some title",
         "id":123,
         "short_description":"some short description",
         "variations":[
            {  
               "id":234,
               "sku":"N123456789",
               "price":"1.50",
               "stock_quantity":2
            }
         ],
         "some_field_we_dont_care_about":987
      },
      {  
         "title":"A different title",
         "id":123,
         "short_description":"Some other short description",
         "variations":[
            {  
               "id":234,
               "sku":"NG1933410388C",
               "price":"2.00",
               "stock_quantity":800
            }
         ],
         "some_field_we_dont_care_about":123
      }
    ]
}
products.cs

  //wrapper class to facilitate json serialization
  public class products
  {
    List<product> productList { get; set; }
  }
以及实际尝试反序列化JSON的代码:

products products = JsonConvert.DeserializeObject<products>(productResponse.Content);
products-products=JsonConvert.DeserializeObject(productResponse.Content);

这不是序列化的原因是您没有“产品”属性:

public class products
{
    List<product> productList { get; set; }
}
然后稍微更改反序列化逻辑:

var productCollection = JsonConvert.DeserializeObject<ProductCollection>(productResponse.Content);
var-productCollection=JsonConvert.DeserializeObject(productResponse.Content);

这不是序列化的原因是您没有“产品”属性:

public class products
{
    List<product> productList { get; set; }
}
然后稍微更改反序列化逻辑:

var productCollection = JsonConvert.DeserializeObject<ProductCollection>(productResponse.Content);
var-productCollection=JsonConvert.DeserializeObject(productResponse.Content);

在productList属性上添加一个
[JsonProperty(PropertyName=“products”)]
属性。您不需要所有的类/属性都是小写的,默认设置将
公共十进制价格{get;set;}
价格匹配:0.123
您还可以将类重命名为ProductCollection或其他更好的名称,并将
productList
更改为
Products
@CamiloTerevinto,谢谢。一旦我得到了一个工作示例,我就要测试套管的差异,看看我是否仍然可以使用标准的C#约定,或者我是否需要一些定制的东西convert@maccettura谢谢这起作用了。如果您想在回答中发布此内容,我很乐意接受。在productList属性上添加
[JsonProperty(PropertyName=“products”)]
属性。您不需要所有的类/属性都是小写的,默认设置将与
公共十进制价格{get;set;}
匹配
“Price”:0.123
您还可以将类重命名为ProductCollection或其他更好的名称,并将
productList
更改为
Products
@CamiloTerevinto,谢谢。一旦我得到了一个工作示例,我就要测试套管的差异,看看我是否仍然可以使用标准的C#约定,或者我是否需要一些定制的东西convert@maccettura谢谢这起作用了。如果你想在回复中贴上这个,我很乐意接受。解释得很好。解释得很好。
var productCollection = JsonConvert.DeserializeObject<ProductCollection>(productResponse.Content);