Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# 如何将JSON数组字符串转换为字典?_C#_Json_Json.net - Fatal编程技术网

C# 如何将JSON数组字符串转换为字典?

C# 如何将JSON数组字符串转换为字典?,c#,json,json.net,C#,Json,Json.net,我有一个JSON字符串,看起来像: [{"Id":"1","Name":"Apple "},{"Id":"2","Name":"Orange "},{"Id":"3","Name":"Banana "}....] 如何将JSON字符串转换为以下格式:{“1”:“Apple”}、{“2”:“Orange”}、{“3”、“Banana”}……这样我就可以创建类似以下的字典: Dictionary<string, string> d = new Dictionary<string,

我有一个JSON字符串,看起来像:

[{"Id":"1","Name":"Apple "},{"Id":"2","Name":"Orange "},{"Id":"3","Name":"Banana "}....]
如何将JSON字符串转换为以下格式:
{“1”:“Apple”}、{“2”:“Orange”}、{“3”、“Banana”}……
这样我就可以创建类似以下的字典:

Dictionary<string, string> d = new Dictionary<string, string>()
    {
        {"1":"Apple"},{"2":"Orange"},{"3","Banana"}
    };
Dictionary d=newdictionary()
{
{“1”:“苹果”}、{“2”:“橙色”}、{“3”、“香蕉”}
};

您实际上不需要将原始字符串转换为其他格式

通过使用中间类,如下所示,您可以直接转换:

using Newtonsoft.Json;
using System.Linq;

Dictionary<string, string> tt = JsonConvert.DeserializeObject<List<DataObject>>(@"[{""Id"":""1"",""Name"":""Apple ""},{""Id"":""2"",""Name"":""Orange ""},{""Id"":""3"",""Name"":""Banana ""}]").ToDictionary(k => k.Id, v => v.Name);

public class DataObject
{
    public string Id { get; set; }
    public string Name { get; set; }
}
使用Newtonsoft.Json;
使用System.Linq;
字典tt=JsonConvert.DeserializeObject(@“[{”“Id”“:”“1”“Name”“:”“Apple”“},{”“Id”“:”“2”“Name”“:”“Orange”“},{”“Id”“:”“3”“Name”“:”“Name”“:”“Banana”“}”)。ToDictionary(k=>k.Id,v=>v.Name);
公共类数据对象
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
}
因此,首先将Json数组转换为
列表
,然后使用Linq
ToDictionary
操作符完成这项工作


希望这有助于

JSON.NET和这篇文章:也许这可以引导你走向正确的方向。删除给定字符串中的@,否则将遇到解析问题。@PankajGupta是否需要详细说明?我同意我给出了错误的答案,但当您使用单引号而不是og时,使用此“id”,因此我们不需要使用@。