как сериализовать JSON, когда значение меняется с int на массив + порядок может измениться - PullRequest
1 голос
/ 20 сентября 2010

Я не уверен, как сериализовать следующий пример из json в ac # объект.Обычно я делаю что-то вроде этого:

 JavaScriptSerializer ser = new JavaScriptSerializer();
 result = ser.Deserialize<Library.Libraries.Model.Post>(responseFromServer);

Но в этом случае я не уверен, как создать класс для его создания, так как значения и порядок могут измениться.

Вот пример:

    {
       "data": [
          {
             "id": "0000000/insights/page_fan_adds_unique/day",
             "name": "page_fan_adds_unique",
             "period": "day",
             "values": [
                {
                   "value": 2,
                   "end_time": "2010-09-15T07:00:00+0000"
                },
                {
                   "value": 0,
                   "end_time": "2010-09-16T07:00:00+0000"
                },
                {
                   "value": 1,
                   "end_time": "2010-09-17T07:00:00+0000"
                }
             ],
             "description": "Daily New Likes of your Page (Unique Users)"
          },
          {
             "id": "0000000/insights/page_fan_adds/day",
             "name": "page_fan_adds",
             "period": "day",
             "values": [
                {
                   "value": 2,
                   "end_time": "2010-09-15T07:00:00+0000"
                },
                {
                   "value": 0,
                   "end_time": "2010-09-16T07:00:00+0000"
                },
                {
                   "value": 1,
                   "end_time": "2010-09-17T07:00:00+0000"
                }
             ],
             "description": "Daily New Likes of your Page (Total Count)"
          },
          {
             "id": "0000000/insights/page_fan_removes_unique/day",
             "name": "page_fan_removes_unique",
             "period": "day",
             "values": [
                {
                   "value": 0,
                   "end_time": "2010-09-15T07:00:00+0000"
                },
                {
                   "value": 1,
                   "end_time": "2010-09-16T07:00:00+0000"
                },
                {
                   "value": 0,
                   "end_time": "2010-09-17T07:00:00+0000"
                }
             ],
             "description": "Daily Unlikes of your Page (Unique Users)"
          },
          {
             "id": "0000000/insights/page_fan_removes/day",
             "name": "page_fan_removes",
             "period": "day",
             "values": [
                {
                   "value": 0,
                   "end_time": "2010-09-15T07:00:00+0000"
                },
                {
                   "value": 1,
                   "end_time": "2010-09-16T07:00:00+0000"
                },
                {
                   "value": 0,
                   "end_time": "2010-09-17T07:00:00+0000"
                }
             ],
             "description": "Daily Unlikes of your Page (Total Count)"
          },
          {
             "id": "0000000/insights/page_fan_adds_source_unique/day",
             "name": "page_fan_adds_source_unique",
             "period": "day",
             "values": [
                {
                   "value": {
                      "fan_box": 1,
                      "fan_page": 1
                   },
                   "end_time": "2010-09-15T07:00:00+0000"
                },
                {
                   "value": [

                   ],
                   "end_time": "2010-09-16T07:00:00+0000"
                },
                {
                   "value": {
                      "fan_page": 1
                   },
                   "end_time": "2010-09-17T07:00:00+0000"
                }
             ],
             "description": "Daily Users can like your page in many different places, both within Facebook and on other websites.  These are the most common places where users like your Page. (Unique Users)"
          },

Проблема в том, что в последнем результате значение изменяется с

 "value": 0,

на

 "value": {
            "fan_box": 1,
            "fan_page": 1
          },

Кроме того, порядоквозвращаемый JSON может быть изменен ...

Таким образом, я не уверен, как это сериализовать ... У кого-нибудь есть предложения?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2010

JSON, который вы анализируете, относится к объектам

ваш код десериализации изменится на

result = ser.Deserialize<List<Library.Libraries.Model.Post>>(responseFromServer);

относительно значения , что вы можете поделиться определением класса Library.Libraries.Model.Post

0 голосов
/ 20 сентября 2010

Вы можете использовать JavaScriptSerializer.DeserializeObject .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...