C# 如何将JSON数组字符串转换为字典?
我有一个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,
[{"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数组转换为列表
,然后使用LinqToDictionary
操作符完成这项工作
希望这有助于JSON.NET和这篇文章:也许这可以引导你走向正确的方向。删除给定字符串中的@,否则将遇到解析问题。@PankajGupta是否需要详细说明?我同意我给出了错误的答案,但当您使用单引号而不是og时,使用此“id”,因此我们不需要使用@。