C# 在C中将JSON反序列化为字符串数组或数据表#

C# 在C中将JSON反序列化为字符串数组或数据表#,c#,asp.net,json,C#,Asp.net,Json,反序列化数组中提到的json字符串时出错 无法反序列化当前JSON对象(例如{“名称”:“值”}) 进入类型“System.Collections.Generic.List”,因为该类型需要 JSON数组(例如[1,2,3]),以正确反序列化 我尝试过很多不同的方法,每次都失败了。请帮助。使用 来自 另一个没有动态的例子是,您可以使用库轻松解析json数据,而无需创建具体的类 string json = @"[ { 'Title': 'Json.NET is awesome!',

反序列化数组中提到的json字符串时出错

无法反序列化当前JSON对象(例如{“名称”:“值”}) 进入类型“System.Collections.Generic.List”,因为该类型需要 JSON数组(例如[1,2,3]),以正确反序列化

我尝试过很多不同的方法,每次都失败了。请帮助。

使用

来自

另一个没有动态

的例子是,您可以使用库轻松解析json数据,而无需创建具体的类

string json = @"[
  {
    'Title': 'Json.NET is awesome!',
    'Author': {
      'Name': 'James Newton-King',
      'Twitter': '@JamesNK',
      'Picture': '/jamesnk.png'
    },
    'Date': '2013-01-23T19:30:00',
    'BodyHtml': '<h3>Title!</h3>\r\n<p>Content!</p>'
  }
]";

dynamic blogPosts = JArray.Parse(json);

dynamic blogPost = blogPosts[0];

string title = blogPost.Title;

Console.WriteLine(title);
// Json.NET is awesome!

string author = blogPost.Author.Name;

Console.WriteLine(author);
// James Newton-King

DateTime postDate = blogPost.Date;

Console.WriteLine(postDate);
// 23/01/2013 7:30:00 p.m.

您的JSON字符串格式不适合转换为JSON字符串数组。如果您想将JSON字符串反序列化为列表,那么您的格式应该如下所示:

using Newtonsoft.Json;

dynamic parse = Newtonsoft.Json.JsonConvert.DeserializeObject(json );
string house = parse.house.Value;
etc..
 string json = "[\"house\",\"loc\"]";
如果希望字符串去序列化为数组,则需要如下所示的相应实体

using Newtonsoft.Json;

dynamic parse = Newtonsoft.Json.JsonConvert.DeserializeObject(json );
string house = parse.house.Value;
etc..
 string json = "[\"house\",\"loc\"]";
然后你应该反序列化到那个类型

public class Address
{
    public string House { get; set; }
    public string Loc { get; set; }
    public string Country { get; set; }
}
string json=“[{\'house\”:\“\21-3-157/18,Sri Vaibhav\”,“loc\”:“Subash nagar,Bolar\”,“country\”:“India\”);
List array=JsonConvert.DeserializeObject(json);

请告诉我们您反序列化的类型。@Mamta Apraj,上传您的代码。如果您能发布您尝试过的“多种不同方式”中的一些,这将有助于我们理解您的问题。据我从您的json代码片段中可以看出,其中根本没有列表数据。您可以将其解析为包含属性“house”、“loc”和“country”的对象,但不能解析为特定的列表类型。