需要从 json 字符串中提取属性和值

Posted

技术标签:

【中文标题】需要从 json 字符串中提取属性和值【英文标题】:Need to extract attribute and value(s) from json string 【发布时间】:2017-02-06 03:45:03 【问题描述】:

我有一个 Json 字符串,我反序列化并变成了一个有 2 个键的字典。我对它的值包含的键(服务)很感兴趣,其中包含一系列服务,每个服务都有自己的属性,都在一行中,由逗号和括号分隔。我希望能够遍历这些服务并获得每个服务的属性。我认为正则表达式会做到这一点,但我找不到匹配的模式 `

 responseDictionary = JsonConvert.DeserializeObject<Dictionary<string, object>>(response);
 var services = responseDictionary["services"]

我取回的值有这个模式

"[\r\n  \r\n    \"name\": \"extract\",\r\n    \"type\": \"FeatureServer\"\r\n  ,\r\n  \r\n    \"name\": \"extract\",\r\n    \"type\": \"MapServer\"\r\n  \r\n]"

有2个服务,

extract---类型特征服务器。

extract---mapserver 类型

我该怎么做才能获得这两种服务类型?

【问题讨论】:

【参考方案1】:

你的 JSON 格式化后的样子:

[
    "name": "extract",
    "type": "FeatureServer"
,

    "name": "extract",
    "type": "MapServer"
]

并且可以映射到类:

public class Service

    public string name  get; set; 
    public string type  get; set; 

所以你可以像这样反序列化它:

List<Service> services = JsonConvert.DeserializeObject<List<Service>>(response);

并为每个服务循环:

foreach(Service s in services)

    string name = s.name;
    string type = s.type;

【讨论】:

以上是关于需要从 json 字符串中提取属性和值的主要内容,如果未能解决你的问题,请参考以下文章

从 json 中提取键和值到新的数据帧

如何从swift3中的JSON字符串中分别获取键和值?

从 JSON 数组中的字符串中提取字段

如何从字符串中提取简单的数字表达式数字?

我需要从嵌套在 JSON 对象中的名为 token 的字段中解析或提取字符串,以便替换会话令牌的电子邮件和密码

如何从 Swift 中的加密 JSON 字符串中提取某些字段?