gpt4 book ai didi

c# - 如何从复杂的 Json 对象中获取值?

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:51 26 4
gpt4 key购买 nike

我正在尝试从 Json 对象中获取值,所有这些对象都像这样形成: http://services.runescape.com/m=itemdb_rs/api/catalogue/detail.json?item=4798

我尝试了几个库,但没有一个以我想要的方式产生。我想将值放入特定的数据成员中。

这是我最后一次尝试,它运行了,但我的数据成员似乎没有获得任何值。

namespace JSON_Data
{
public partial class Form1 : Form
public Form1()
{
InitializeComponent();
string jsonString = @"{""item"":{""icon"":""http://services.runescape.com/m=itemdb_rs/4996_obj_sprite.gif?id=4798"",""icon_large"":""http://services.runescape.com/m=itemdb_rs/4996_obj_big.gif?id=4798"",""id"":4798,""type"":""Ammo"",""typeIcon"":""http://www.runescape.com/img/categories/Ammo"",""name"":""Adamant brutal"",""description"":""Blunt adamantite arrow...ouch"",""current"":{""trend"":""neutral"",""price"":305},""today"":{""trend"":""neutral"",""price"":0},""members"":""true"",""day30"":{""trend"":""positive"",""change"":""+2.0%""},""day90"":{""trend"":""positive"",""change"":""+8.0%""},""day180"":{""trend"":""positive"",""change"":""+23.0%""}}}";

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Item));
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
Item obj = (Item)ser.ReadObject(stream);
}
}
}

这是我的类“Item”的样子

namespace JSON_Data
{
[DataContract]
public class Item
{
[DataMember]
public string Icon { get; set; }
[DataMember]
public string Icon_large { get; set; }
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public string Members { get; set; }
}
}

最佳答案

如果您可以尝试 Newtonsoft,我可以提供一种方法..据我所知,它是非常好的和更好的方法

var ob = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonString);
Item a = ((JObject)ob["item"]).ToObject<Item>();

关于c# - 如何从复杂的 Json 对象中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33597380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com