Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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# 在c语言中反序列化JSON数组#_C#_Json - Fatal编程技术网

C# 在c语言中反序列化JSON数组#

C# 在c语言中反序列化JSON数组#,c#,json,C#,Json,我开发了返回JSON字符串的服务。 返回字符串如下所示: string result = [{"ID":"1","ProductName":"Canon"},{"ID":"2","ProductName":"HP"}]; 现在我想反序列化上面的JSON字符串 我试过下面的例子,但做不到。获取所有的错误 Dictionary<string, string> data = JsonConvert.DeserializeObject<Dictionary<string, st

我开发了返回JSON字符串的服务。 返回字符串如下所示:

string result = [{"ID":"1","ProductName":"Canon"},{"ID":"2","ProductName":"HP"}];
现在我想反序列化上面的JSON字符串

我试过下面的例子,但做不到。获取所有的错误

Dictionary<string, string> data = JsonConvert.DeserializeObject<Dictionary<string, string>>(result);

Dictionary<string, Dictionary<string, string>> data = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(result);

string[][] data = JsonConvert.DeserializeObject<string[][]>(result);

var serialize = new JavaScriptSerializer();
string[] resultArray = serialize.Deserialize<string[]>(result);
Dictionary data=JsonConvert.DeserializeObject(结果);
Dictionary data=JsonConvert.DeserializeObject(结果);
字符串[][]数据=JsonConvert.DeserializeObject(结果);
var serialize=新的JavaScriptSerializer();
字符串[]resultArray=serialize.Deserialize(结果);

有人能帮我吗?

创建一个类来表示每个元素:

public class TestClass
{
    public int ID { get; set; }

    public string ProductName { get; set; }
}
将文件反序列化为
TestClass[]

然后,如果需要.ToDictionary()的格式,可以使用该格式:

Dictionary<int, string> lookup = deserializedArray.ToDictionary(k => k.Id, v => v.ProductName);
Dictionary lookup=反序列化darray.ToDictionary(k=>k.Id,v=>v.ProductName);

创建一个类来表示每个元素:

public class TestClass
{
    public int ID { get; set; }

    public string ProductName { get; set; }
}
将文件反序列化为
TestClass[]

然后,如果需要.ToDictionary()的格式,可以使用该格式:

Dictionary<int, string> lookup = deserializedArray.ToDictionary(k => k.Id, v => v.ProductName);
Dictionary lookup=反序列化darray.ToDictionary(k=>k.Id,v=>v.ProductName);
例如:

class Program
{
    static void Main(string[] args)
    {
        string json = @"[{""ID"":""1"",""ProductName"":""Canon""},{""ID"":""2"",""ProductName"":""HP""}]";
        IEnumerable<Product> result =  JsonConvert.DeserializeObject<IEnumerable<Product>>(json);
    }   
}

class Product
{
    public int ID { get; set; }
    public string ProductName { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
字符串json=@“[{”“ID”“:”“1”“ProductName”“:”“Canon”“},{”“ID”“:”“2”“ProductName”“:”“HP”“}]”;
IEnumerable result=JsonConvert.DeserializeObject(json);
}   
}
类产品
{
公共int ID{get;set;}
公共字符串ProductName{get;set;}
}
如果你想要一本字典:

IDictionary<int, string> dict = result.ToDictionary(product => product.ID, product => product.ProductName);
IDictionary dict=result.ToDictionary(product=>product.ID,product=>product.ProductName);
例如:

class Program
{
    static void Main(string[] args)
    {
        string json = @"[{""ID"":""1"",""ProductName"":""Canon""},{""ID"":""2"",""ProductName"":""HP""}]";
        IEnumerable<Product> result =  JsonConvert.DeserializeObject<IEnumerable<Product>>(json);
    }   
}

class Product
{
    public int ID { get; set; }
    public string ProductName { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
字符串json=@“[{”“ID”“:”“1”“ProductName”“:”“Canon”“},{”“ID”“:”“2”“ProductName”“:”“HP”“}]”;
IEnumerable result=JsonConvert.DeserializeObject(json);
}   
}
类产品
{
公共int ID{get;set;}
公共字符串ProductName{get;set;}
}
如果你想要一本字典:

IDictionary<int, string> dict = result.ToDictionary(product => product.ID, product => product.ProductName);
IDictionary dict=result.ToDictionary(product=>product.ID,product=>product.ProductName);

有两种方法可以实现您想要的功能,即创建具体的
类来存储您的值

public class MyJsonValueClass
{
    [JsonProperty(PropertyName = "ID")]
    public int Productid { get; set; }

    [JsonProperty(PropertyName = "ProductName ")] 
    public string Name { get; set; }
}

List<MyJsonValueClass> jsonData = JsonConvert.DeserializeObject<List<MyJsonValueClass>>(json);
公共类MyJsonValueClass
{
[JsonProperty(PropertyName=“ID”)]
public int Productid{get;set;}
[JsonProperty(PropertyName=“ProductName”)]
公共字符串名称{get;set;}
}
List jsonData=JsonConvert.DeserializeObject(json);
否则,如果不想为字典创建类,则使用字典的
列表
列表将获取数据

List<Dictionary<string,string>> dataFromJson = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(json);
List dataFromJson=JsonConvert.DeserializeObject(json);

有两种方法可以实现您想要的功能,即创建具体的
类来存储您的值

public class MyJsonValueClass
{
    [JsonProperty(PropertyName = "ID")]
    public int Productid { get; set; }

    [JsonProperty(PropertyName = "ProductName ")] 
    public string Name { get; set; }
}

List<MyJsonValueClass> jsonData = JsonConvert.DeserializeObject<List<MyJsonValueClass>>(json);
公共类MyJsonValueClass
{
[JsonProperty(PropertyName=“ID”)]
public int Productid{get;set;}
[JsonProperty(PropertyName=“ProductName”)]
公共字符串名称{get;set;}
}
List jsonData=JsonConvert.DeserializeObject(json);
否则,如果不想为字典创建类,则使用字典的
列表
列表将获取数据

List<Dictionary<string,string>> dataFromJson = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(json);
List dataFromJson=JsonConvert.DeserializeObject(json);

尝试创建一个类并将其声明为[JsonObject],然后设置[JsonProperty(“ID”)字符串ID{get;set;}和[JsonProperty(“ProductName”)字符串ProductName{get;set;}尝试创建一个类并将其声明为[JsonObject],然后设置[JsonProperty(“ID”)字符串ID{get set;}和[JsonProperty(“ProductName”)字符串ProductName{get;set;}接近具体类或
字典列表
?接近具体类或
字典列表