json Newtonsoft -如何解析对象数组

hrirmatl  于 2022-11-19  发布在  其他
关注(0)|答案(3)|浏览(217)

我只是想把这个JSON放到某种对象中。JArrayJToken对我来说完全是混乱的。
我可以创建一个类,以便Newtonsoft知道要Map到什么,但如果您注意到对象具有以下结构:{ "anAnimal": { foo: 1, bar: 2 }},而且我不知道mapper对象是什么样子。我非常确定这应该可以立即工作,我一点也不需要考虑。

var myFavoriteAnimalsJson = @"
[
    {
        ""Dog"": {
            ""cuteness"": ""7.123"",
            ""usefulness"": ""5.2"",
        }
    },
    {
        ""Cat"": {
            ""cuteness"": ""8.3"",
            ""usefulness"": ""0"",
        }
    }
]";

var jArray = new JArray(myFavoriteAnimalsJson);
// grab the dog object. or the cat object. HOW CUTE IS THE DOG?
hof1towb

hof1towb1#

.SelectToken()构造JSON路径查询逻辑。
下面的示例查询animals的第一项,以获取“Dog”标记的对象及其值。

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

JArray animals = JArray.Parse(myFavoriteAnimalsJson);
        
var dog = animals[0].SelectToken("Dog");

Console.WriteLine(dog);
Console.WriteLine(dog["cuteness"]);

Sample Program
输出量
{“可爱”:“7.123”、“有用性”:“5.2”}
7.123

9o685dep

9o685dep2#

您可以将其反序列化为List<Dictionary<string, AnimalData>>
第一个
现在,每个列表项都包含一个字典,该字典具有单个键DogCat ...

q1qsirdb

q1qsirdb3#

如果从序列化JSON(即字符串)开始,则必须解析它:

var jArray = JArray.Parse(myFavoriteAnimalsJson);

相关问题