Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / JSON Deserialize / 23 сообщений из 23, страница 1 из 1
22.08.2013, 13:12
    #38374518
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
Вопрос в следующем. можно ли как то десериализовать следующюй структуру json.

Код: javascript
1.
2.
3.
4.
5.
"[
{"key1":"value1"},
{"key2":"value2"},
{"key3":"value3"},
]}



P.S. FrameWork 3.5
...
Рейтинг: 0 / 0
22.08.2013, 13:15
    #38374526
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
JavaScriptSerializer
...
Рейтинг: 0 / 0
22.08.2013, 13:26
    #38374551
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
МСУ,

десериализую я классом System.Runtime.Serialization.Json.DataContractJsonSerializer
но ему надо следующую структуру

[{"Key":"key1","Value":"value1"},{"Key":"key2","Value":"value2"}]}
...
Рейтинг: 0 / 0
22.08.2013, 13:28
    #38374554
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_system, что не понятно из моего ответа?
...
Рейтинг: 0 / 0
22.08.2013, 13:32
    #38374560
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
МСУvirus_system, что не понятно из моего ответа?как
...
Рейтинг: 0 / 0
22.08.2013, 13:33
    #38374562
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_systemМСУvirus_system, что не понятно из моего ответа?как
Я же ответил как. Или тебе код написать?
...
Рейтинг: 0 / 0
22.08.2013, 13:37
    #38374569
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
МСУvirus_systemпропущено...
как
Я же ответил как. Или тебе код написать?


ну дай пример небольшой, я пробывал - у меня не получается.
...
Рейтинг: 0 / 0
22.08.2013, 13:38
    #38374573
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_systemВопрос в следующем. можно ли как то десериализовать следующюй структуру json.

Код: javascript
1.
2.
3.
4.
5.
"[
{"key1":"value1"},
{"key2":"value2"},
{"key3":"value3"},
]}



P.S. FrameWork 3.5
Нельзя. В примере ошибка.
...
Рейтинг: 0 / 0
22.08.2013, 13:41
    #38374576
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
ShSergevirus_systemВопрос в следующем. можно ли как то десериализовать следующюй структуру json.

Код: javascript
1.
2.
3.
4.
5.
"[
{"key1":"value1"},
{"key2":"value2"},
{"key3":"value3"},
]}



P.S. FrameWork 3.5
Нельзя. В примере ошибка.

где? такое уже с сервака приходит...
...
Рейтинг: 0 / 0
22.08.2013, 13:42
    #38374579
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_systemну дай пример небольшой, я пробывал - у меня не получается.
Ну так и говори, напишите код, сделайте за меня работу.

Вот тебе код для твоего кривого json (а он реально кривой):

Код: c#
1.
2.
3.
4.
5.
6.
7.
string json = "[{\"key1\":\"value1\"},{\"key2\":\"value2\"},{\"key3\":\"value3\"}]";
var serializer = new JavaScriptSerializer();
var obj = serializer.Deserialize<dynamic>(json);

string key1 = obj[0]["key1"];
string key2 = obj[1]["key2"];
string key3 = obj[2]["key3"];



P.S. С поправкой на ветер исправлением невалидности твоего json (в конце лишняя запятая и закрывающая круглая скобка).
...
Рейтинг: 0 / 0
22.08.2013, 13:43
    #38374581
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_systemгде? такое уже с сервака приходит...
Это не отменяет факта невалидности твоего json.
...
Рейтинг: 0 / 0
22.08.2013, 13:57
    #38374612
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
МСУvirus_systemну дай пример небольшой, я пробывал - у меня не получается.
Ну так и говори, напишите код, сделайте за меня работу.

Вот тебе код для твоего кривого json (а он реально кривой):

Код: c#
1.
2.
3.
4.
5.
6.
7.
string json = "[{\"key1\":\"value1\"},{\"key2\":\"value2\"},{\"key3\":\"value3\"}]";
var serializer = new JavaScriptSerializer();
var obj = serializer.Deserialize<dynamic>(json);

string key1 = obj[0]["key1"];
string key2 = obj[1]["key2"];
string key3 = obj[2]["key3"];



P.S. С поправкой на ветер исправлением невалидности твоего json (в конце лишняя запятая и закрывающая круглая скобка).

Что то я не неайду Microsoft.CSharp.dll в 3.5
...
Рейтинг: 0 / 0
22.08.2013, 14:01
    #38374620
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_systemЧто то я не неайду Microsoft.CSharp.dll в 3.5
dynamic появился в 4.0, юзай типизированный подход.

Код: c#
1.
2.
3.
4.
var obj = serializer.Deserialize<JsonValue[]>(json);
string key1 = obj[0].key1;
string key2 = obj[1].key2;
string key3 = obj[2].key3;



Код: c#
1.
2.
3.
4.
5.
6.
public class JsonValue
{
    public string key1 { get; set; }
    public string key2 { get; set; }
    public string key3 { get; set; }
}
...
Рейтинг: 0 / 0
22.08.2013, 14:04
    #38374630
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
МСУvirus_systemЧто то я не неайду Microsoft.CSharp.dll в 3.5
dynamic появился в 4.0, юзай типизированный подход.

Код: c#
1.
2.
3.
4.
var obj = serializer.Deserialize<JsonValue[]>(json);
string key1 = obj[0].key1;
string key2 = obj[1].key2;
string key3 = obj[2].key3;



Код: c#
1.
2.
3.
4.
5.
6.
public class JsonValue
{
    public string key1 { get; set; }
    public string key2 { get; set; }
    public string key3 { get; set; }
}



а енто не key1, key2, key3 а это должно быть Dictionary
...
Рейтинг: 0 / 0
22.08.2013, 14:11
    #38374645
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_system, я не пойму в какую он его структуру десериализует....

У меня вообще начал щас ругаться Тип "JsonValue" не поддерживается для десериализации массива.
...
Рейтинг: 0 / 0
22.08.2013, 14:19
    #38374672
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
МСУ, в общем что то в типизированном подходе не работает....
...
Рейтинг: 0 / 0
22.08.2013, 14:31
    #38374700
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_systemа енто не key1, key2, key3 а это должно быть Dictionary
С какого перепуга?

virus_systemМСУ, в общем что то в типизированном подходе не работает....
?
...
Рейтинг: 0 / 0
22.08.2013, 14:35
    #38374710
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
Вот Dictionary {"key1":"value1","key2":"value2","key3":"value3"}
А это [{"key1":"value1"},{"key2":"value2"},{"key3":"value3"}] во-первых, массив трёх объектов, причем разных типов.

Разницу понимаем?
...
Рейтинг: 0 / 0
22.08.2013, 14:40
    #38374718
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
МСУВот Dictionary {"key1":"value1","key2":"value2","key3":"value3"}
А это [{"key1":"value1"},{"key2":"value2"},{"key3":"value3"}] во-первых, массив трёх объектов, причем разных типов.

Разницу понимаем?
Да разницу то я понимаю... Токо я до сих пор не понимаю, возможно ли вообще его десерилаизовать в какой нибудь типизированный класс
...
Рейтинг: 0 / 0
22.08.2013, 14:42
    #38374724
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_systemДа разницу то я понимаю... Токо я до сих пор не понимаю, возможно ли вообще его десерилаизовать в какой нибудь типизированный класс
Ты решил вынести мне мозг? Я же тебе пример дал! 14741673
...
Рейтинг: 0 / 0
22.08.2013, 14:55
    #38374751
virus_system
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
Т.е. получается вообще не динамическая ерунда. если придет key4, то надо пересобирать код???
...
Рейтинг: 0 / 0
22.08.2013, 14:58
    #38374757
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
virus_systemТ.е. получается вообще не динамическая ерунда. если придет key4, то надо пересобирать код???
Если типизированный подход, то да. Если распаковываешь в dynamic ли object (рефкесия) - нет. А, вообще, нужно яйца отрывать тому разработчику, который такой json собирает.
...
Рейтинг: 0 / 0
22.08.2013, 14:59
    #38374758
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON Deserialize
МСУdynamic ли object (рефлексия)
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / JSON Deserialize / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]