我正在尝试从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);
}
}
}
这是我的班级“物品”的样子
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>();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句