我試圖從Json的獲取值的對象,所有的都是這樣一種形成: http://services.runescape.com/m=itemdb_rs/api/catalogue/detail.json?item=4798如何從複雜的Json對象中獲取值?
我試了幾個庫,但他們沒有引起我想要的方式。我想將這些值放入特定的數據成員。
這是我最後一次嘗試,它運行但似乎我的Datammbers沒有得到任何值。
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; }
}
}
只需粘貼像[這一個] A轉換器源JSON( http://json2csharp.com/)(Google上的第一個結果)。你的屬性名稱與Json中的名稱不同,這就是爲什麼它不起作用。 –
@ Pierre-LucPineault,非常感謝您的回答!我現在在上面。 –
我注意到字符串有一些額外的屬性值,你的物品類沒有。所以簡單的Deserilization不能返回對象。你的輸入看起來不對我 –