@userocker

Как парсить json в строготипизированных языках?

Вопрос стоить костью в горле уже давно. Как мы обычно парсим json? Пишем модель данных, например C#:
{result:0}
[JsonObject(MemberSerialization.Fields)]
public class Response
{
    [JsonProperty(PropertyName="result")]
    int Result;
}

... и тд по вкусу. Но что если в одном случае result - это int, а в другом - это object. Вся логика уже ломается.
{result: {param1:0, param2:"hello"}
[JsonObject(MemberSerialization.Fields)]
public class Response
{
    [JsonProperty(PropertyName="result")]
    Result Result;
}
[JsonObject(MemberSerialization.Fields)]
public class Result
{
    [JsonProperty(PropertyName="param")]
    int Param;
//итд
}

И что теперь? Парсить 2 раза и ловить в try-catch? проверять как-то? а если там может быть и int, и string, и object - по 3 раза парсить? Когда остановиться?)))
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 2
@lyeskin
Есть мини-библиотеки для парса JSON.
Ответ написан
Комментировать
vawsan
@vawsan
Frontend Developer
Один из самых простых вариантов без всяких плагинов(но только если знаете нужную вам вложенность) - сериализуете данные в Dictionary, а затем typeof.
Но, опять же, нужно понимать, как вам отличить "0" строку от "0" цифры. Если сама структура этого не позволяет, то уже не вариант...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы