У меня есть данные JSON, возвращаемые с сервера.Определить, является ли объект массивом или строкой
Иногда данные являются временными массивами Array, они возвращают пустую строку (да, я знаю, что она должна возвращать пустой массив).
Поэтому мне нужно проверить FIRST, если тип является экземпляром String; если это так, я собираюсь игнорировать его и продолжать жизнь.
Else Мне нужно прочитать значения.
Как определить, является ли объект String
?
Я посмотрел на это SO question и некоторые другие, но я не думаю, что это точно соответствует моему сценарию.
Я чувствую, что я рядом, но мой код не соответствует тому, что я не могу передать объект в строку.
Но если я передам его в строку ..., то он ВСЕГДА будет экземпляром строки. Бесконечная петля.
Здесь я до сих пор.
private void myMethod(JSONObject data){
if (data.has("Notes")){
Object json = new JSONTokener(data.getJSONObject("Notes")).nextValue();
if(data.getJSONObject("Notes") instanceof String) {
JSONArray array = data.getJSONObject("Notes").getJSONArray("Note");
//do all the array stuff
}
}
}
JSON с массива Пример
{ "Data": {
"key": "A value",
"another key": "some value",
"Notes": {
"Note": ["1", "2", "3", "4"]
} } }
JSON без массива Пример
{ "Data": {
"key": "A value",
"another key": "some value",
"Notes": ""
} }
'getJSONObject' возвращает' JSONObject', который не является 'instanceof String' –
Мне нужно знать, что такое содержимое« Примечания ». Это строка или массив? –
Я думаю, что вы хотите 'get (" Notes ") instanceof', так как' get' - это то, что возвращает класс 'Object'. Вы также можете попробовать один из методов 'opt', который возвращает' null', когда он не может преобразовать. –