C# 解析json字符串以查找和删除元素(键/值)

C# 解析json字符串以查找和删除元素(键/值),c#,parsing,json.net,C#,Parsing,Json.net,我在timezones.json文件中有以下json: { "Atlantic/Canary": "GMT Standard Time", "Europe/Lisbon": "GMT Standard Time", "Antarctica/Mawson": "West Asia Standard Time", "Etc/GMT+3": "SA Eastern Standard Time", "Etc/GMT+2": "UTC-02", "Etc/GMT+1": "Cape Verde S

我在timezones.json文件中有以下json:

  { "Atlantic/Canary": "GMT Standard Time", "Europe/Lisbon": "GMT Standard Time", 
"Antarctica/Mawson": "West Asia Standard Time", "Etc/GMT+3": "SA Eastern Standard Time", 
"Etc/GMT+2": "UTC-02", "Etc/GMT+1": "Cape Verde Standard Time", "Etc/GMT+7": "US Mountain 
Standard Time", "Etc/GMT+6": "Central America Standard Time", "Etc/GMT+5": "SA Pacific 
Standard Time", "Etc/GMT+4": "SA Western Standard Time", "Pacific/Wallis": "UTC+12", 
"Europe/Skopje": "Central European Standard Time", "America/Coral_Harbour": "SA Pacific 
Standard Time", "Asia/Dhaka": "Bangladesh Standard Time", "America/St_Lucia": "SA Western 
Standard Time", "Asia/Kashgar": "China Standard Time", "America/Phoenix": "US Mountain 
Standard Time", "Asia/Kuwait": "Arab Standard Time" }
我想从中搜索一个特定的键,例如“Atlantic/Canary”,因此希望返回其值,即“GMT标准时间”

如何使用Json.Net或C#中的任何其他有效方法来实现这一点?

使用Json解析器,如

string json=“{\'大西洋/加那利群岛\\”:“格林尼治标准时间\-”,“欧洲/里斯本\:“格林尼治标准时间\-”,“南极洲/马森\-”:“西亚标准时间\-”,“Etc/GMT+3\”:“南非东部标准时间\-”,“Etc/GMT+2\”:“UTC-02\,“Etc/GMT+1\”:“佛得角标准时间\-”,“Etc/GMT+7\:“美国山区标准时间\-”,“Etc/GMT+6\:”中美洲标准时间“,”Etc/GMT+5“:”南非太平洋标准时间“,”Etc/GMT+4“:”南非西部标准时间“,”太平洋/瓦利斯“:”UTC+12“,”欧洲/斯科普里“:”中欧标准时间“,”美洲/珊瑚港“:”南非太平洋标准时间“,”亚洲/达卡“:”孟加拉国标准时间“,”美洲/圣卢西亚“:”南非西部标准时间“,”亚洲/喀什“:”中国标准时间“,”美洲/凤凰城“:”美国山区标准时间“,”亚洲/科威特“:”阿拉伯标准时间“;
var data=(JObject)JsonConvert.DeserializeObject(json);
字符串时区=数据[“大西洋/金丝雀”].Value();

您希望先将其转换为对象,然后正常访问,确保将其强制转换

JObject obj = JObject.Parse(json);
string name = (string) obj["Name"];

如果json很长,并且您只需要一个itLook键,那么效率就不高。如果json上有许多“名称”,那会怎么样?@alansiqueira27,那么它不是json。键必须是唯一的我想他可能指的是一个JSON对象数组,它将有多个名称您可以添加完整的“using”语句和/或包引用吗?
JObject obj = JObject.Parse(json);
string name = (string) obj["Name"];