2 回答
TA贡献2021条经验 获得超8个赞
好吧,您可以改为尝试这些类,然后在 Pet 列表上循环。
public class JsonParsed
{
public Dictionary<string, Attribute> Pet { get; set; }
}
public class Attribute
{
public bool cute { get; set; }
public int feet { get; set; }
}
键包含宠物的名称,属性将包含其他属性。
var json = @"{'Pet': {'Dog': {'cute': true,'feet': 4},'Bird': {'cute':
false,'feet': 2}}}";
var obj = JsonConvert.DeserializeObject<JsonParsed>(json);
foreach (var element in obj.Pet)
{
Console.WriteLine(element.Key + " has " + element.Value.feet);
}
TA贡献1815条经验 获得超10个赞
我是这么想的,但我知道这是不可能的。
是的,是的,可以通过以下代码实现。
你必须Querying像你的 json
string JSON_TEXT = File.ReadAllText("PET.JSON");
JObject jObject = JObject.Parse(JSON_TEXT);
//This is your search term
string search = "Dog"; //or "Bird", or "Lion", or "Tiger", or "Eagle" or anything that are present it your json
bool cute = (bool)jObject["Pet"][search]["cute"];
int feet = (int)jObject["Pet"][search]["feet"];
string temp = $"My {search} is cute = {cute} and feet = {feet} ";
//If you want it in your strongly type then
Dog dog = jObject["Pet"][search].ToObject<Dog>();
Bird bird = jObject["Pet"][search].ToObject<Bird>();
输出:
在上面的代码中
[“宠物”] => json 的第 0 个位置级别节点。
[搜索] => json 的第一个位置级别节点。
["cute"] 或 ["feet"] => 你的 json 的第二个位置级别节点,还有更多你的 json 深度
你可以在这里找到更多信息Querying Json
- 2 回答
- 0 关注
- 280 浏览
添加回答
举报