使用以字符串形式接收的JSON数组

时间:2018-12-27 13:52:04

标签: c# arrays

我收到的字符串output如下所示:

{family_name:XXX, given_name:XXX, locale:en, name:XXX, picture:XXX, profile:XXX, sub:XXX}

我想获取其中一些值并将它们存储在变量中,但是由于它是字符串,所以我无法使用索引(我只会使用var x = output[0]等)

如何获得这些值?

预先感谢

2 个答案:

答案 0 :(得分:4)

字符串的结构是一个JSON对象。因此,您必须将其作为JSON对象处理。 首先将其解析为JSON。例如。像这样:

JObject json = JObject.Parse(YOUR_STRING);

现在要获得所需的给定值,例如family_name,您可以说:

string name = (string) json["family_name"];

答案 1 :(得分:1)

我会推荐Json.Net。

将您的字符串解析为json,并创建一个可以将JSON值保存为

的模型
public class Person
{
    public string family_name {get;set}
    public string given_name {get;set;}
    public List<string> siblings{get;set;}
}

(这可以通过https://quicktype.io/csharp/或手动完成)

然后:

string json = @"{
  'family_name': 'Foo',
  'given_name': 'Bar',
  'siblings': [
    'Jhon',
    'Doe'
  ]
}";

Person person = JsonConvert.Deserialize<Person>(json);

string familyName = person.family_name;
//Foo