我的目标:
在成功之后,从网站读取JSON,获取某些项目的值并显示它们
拉出来我想要实现接受像true这样的值并将其设置为false
对于初学者,我需要帮助找出如何读取和写入变量。我读过了
关于如何读取数据并解析数据的大量教程和博客,但不是
解释的是存储的值在哪里?
就像我有这个http://elsite.com/.json并且有这个:
{ dola: "p9", data:{ house: [{ dola: "p9", data:{ owner: "blah", // string price: blah, // int url: "http://www.link.com", // url/string message: "blahblah", checked: false } }, { dola: "p9", data:{ owner: "blah", // same as above
我已经构建了这个来获取数据:
[DataContract]
class container
{
[DataMember(Name = "data")]
public Data1 dataStart { get; set; }
[DataContract]
public class Data1
{
[DataMember(Name = "house")]
public HouseA[] home { get; set; }
[DataContract]
public class HouseA
{
[DataMember(Name = "data")]
public Data2 dataSec { get; set; }
[DataContract]
public class Data2
{
[DataMember(Name = "owner")]
public string own { get; set }
[DataMember(Name = "message")]
public strinng mess { get; set; }
}
}
}
}
我想用
var blah = from post in container.dataStart.house.data // obviously not the right way to do it
select new MessageItem
{
User = post.own,
Meza = post.mess
}
带
public class MessageItem
{
public string User;
public string Meza;
}
所以基本上它归结为我并不完全理解数组和对象的结构。 有人能以正确的方式指导我做from.in.select吗?
答案 0 :(得分:3)
您是否查看了包含LINQ to JSON支持的Json.NET http://json.codeplex.com/
答案 1 :(得分:1)
我更喜欢JavaScriptSerializer
(System.Web.Extensions.dll);以下作品:
JsonResult obj = new JavaScriptSerializer().Deserialize<JsonResult>(json);
var qry = from house in obj.data.house
let post = house.data
select new MessageItem
{
User = post.owner,
Meza = post.message
};
使用:
class JsonResult
{
public string dola { get; set; }
public Data data { get; set; }
public class Data
{
public List<House> house { get; set; }
}
public class House
{
public string dola { get; set; }
public HouseData data { get; set; }
}
public class HouseData
{
public string owner { get; set; }
public int price {get;set;}
public Uri url {get;set;}
public string message {get;set;}
public bool @checked {get;set;}
}
}