Я использую gson для сериализации и десериализации. У меня следующий объект:Json in a Json
OBJECT A:
String myEmail;
int rank;
String msgData;
В приведенном выше случае, msgData является строка JSON, поэтому указанные выше объект в виде JSON будет десериализации в 2 этапа. По определенным причинам мы должны сделать это за 2 шага. Объект B ниже - будет json для msgData выше.
OBJECT B:
String myName;
int myNumber;
String[] myStrings;
Json для объекта B выглядит следующим образом:
{
"myName": "TheJumper",
"myNumber": "35",
"myString": [
"abc",
"efg",
"xyz"
]
}
Вопрос: Как мы представляем JSON - ОБЪЕКТ В; в json-форме для OBJECT A, так что, когда OBJECT A десериализуется, json для OBJECT B можно извлечь как String.
Например: Json для объекта А можно представить в виде (Действительный Json):
{
"myEmail": "[email protected]",
"myRank": "50",
"msgData": "This is a Message"
}
Когда я попробовать следующее - это даст мне ошибку недействительных JSON.
{
"myEmail": "[email protected]",
"myRank": "50",
"msgData": "{
"myName": "TheJumper",
"myNumber": "35",
"myString": [
"abc",
"efg",
"xyz"
]
}"
}
Я пробовал несколько вещей, но не смог его решить. Как это будет сделано?
кавычки должны быть экранированы. "{\" name \ ": \" foo \ "}" –
Спасибо Клоду Мартину. Я попробовал это предложение, но оставил объект B в нескольких строках. Я проверил с JsonLint, и это дало мне ошибку. Кажется, что если объект B представлен в одной строке с бегством, то он работает. Почему? (см. ответ ответа на ответ). – userDSSR