我正在尝试获取JSON的内部节点。
尤其是,我试图获取“ A”和“ B”中的值。
但是,我的JSON以“ Things”开头,然后转到“ A”和“ B”。
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
string json = "{\"Things\":[{\"A\":\"one\",\"B\":\"two\",\"C\":\"three\",\"D\":\"four\",\"E\":\"five\", \"F\":\"six\"},\"G\":\"seven\"}]}";
var jsonObj = JsonConvert.DeserializeObject<JObject>(json).First.First;
Console.WriteLine(jsonObj["Things"]);
}
public class Account
{
public string A
{
get;
set;
}
public string B
{
get;
set;
}
}
}
}
答案 0 :(得分:1)
假设有效的JSON,您的JSON无效:
{
"Things": [{
"A": "one",
"B": "two",
"C": "three",
"D": "four",
"E": "five",
"F": "six" },
{"G": "seven"}]
}
您需要使用键,值对为JSON定义类,如下所示:
public class Myclass
{
public Dictionary<string, string>[] Things { get; set; }
}
那你就好了:
string json = "{\"Things\":[{\"A\":\"one\",\"B\":\"two\",\"C\":\"three\",\"D\":\"four\",\"E\":\"five\", \"F\":\"six\"},{\"G\":\"seven\"}]}";
var jsonObj = JsonConvert.DeserializeObject<Myclass>(json);
Console.WriteLine(jsonObj.Things[0]["A"]);
Console.WriteLine(jsonObj.Things[0]["B"]);
输出:
one
two
答案 1 :(得分:0)
为帮助生成JSON类,您可以使用此网站http://json2csharp.com/ 当您使用大型JSON时,此功能非常有用。它还将验证您的json。