Структура Json в C # - PullRequest
       6

Структура Json в C #

0 голосов
/ 18 декабря 2010

Моя цель:
Чтение 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

Я построил это, чтобы получить данные:

<code>
[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; }
             }
        }
    }
}

Я хочу использовать

<code>
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
           }

с

<code>
public class MessageItem
{
    public string User;
    public string Meza;
}

Так что в основном все сводится к тому, что я не ПОЛНОСТЬЮ понимаю структуру массивов и объектов.Любой, кто сможет направить меня в правильном направлении, чтобы сделать запрос from.in.select?

Ответы [ 2 ]

3 голосов
/ 18 декабря 2010

Вы смотрели на Json.NET http://json.codeplex.com/, который включает поддержку LINQ to JSON

1 голос
/ 18 декабря 2010

Я предпочитаю 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;}
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...