我正在尝试将返回给我的JSON字符串映射到我拥有的.Net模型类中。 JSON将是包含任意数量结果的数组,我想从此方法返回List<MyObject>
。
JSON看起来像这样:
{
"artists" : {
"href" : "https://api.spotify.com/v1/search?query=tania+bowra&offset=0&limit=20&type=artist",
"items" : [ {
"external_urls" : {
"spotify" : "https://open.spotify.com/artist/08td7MxkoHQkXnWAYD8d6Q"
},
"followers" : {
"href" : null,
"total" : 26
},
"genres" : [ ],
"href" : "https://api.spotify.com/v1/artists/08td7MxkoHQkXnWAYD8d6Q",
"id" : "08td7MxkoHQkXnWAYD8d6Q",
"images" : [ {
"height" : 640,
"url" : "https://i.scdn.co/image/f2798ddab0c7b76dc2d270b65c4f67ddef7f6718",
"width" : 640
}, {
"height" : 300,
"url" : "https://i.scdn.co/image/b414091165ea0f4172089c2fc67bb35aa37cfc55",
"width" : 300
}, {
"height" : 64,
"url" : "https://i.scdn.co/image/8522fc78be4bf4e83fea8e67bb742e7d3dfe21b4",
"width" : 64
} ],
"name" : "Tania Bowra",
"popularity" : 2,
"type" : "artist",
"uri" : "spotify:artist:08td7MxkoHQkXnWAYD8d6Q"
} ],
"limit" : 20,
"next" : null,
"offset" : 0,
"previous" : null,
"total" : 1
}
}
我正在尝试使用Json.Net ......所以我开始:
JObject jsonArtists = JObject.Parse(content);
这是我被困的地方。我尝试了使用JArray
的不同方法,但我不确定我需要在这里使用什么语法,以及Json.Net将要处理多少提升而不必写出所有各种属性映射。
在这种情况下,我有兴趣从JSON中的items
集合中获取数组,并将其转换为List<MyObject>
。
答案 0 :(得分:0)
示例中的JSON是单个对象({...}
),而不是列表([...]
)。
您可以使用JsonConvert.DeserializeObject<MyObject>(json)
直接进入模型。或JsonConvert.DeserializeObject<List<MyObject>>(json)
如果json
包含列表定义。
答案 1 :(得分:0)
您需要创建表示JSON数据的类。之后,deserialize将JSON数据放入类中。
您应该查看的资源:
答案 2 :(得分:0)
我使用以下解决方案直接跳转到数组,然后尝试序列化到我的对象中。它有效。
var jsonArtists = JObject
.Parse(content)
.SelectToken("artists.items")
.ToObject<List<MyObject>>();