java确定对象是数组还是字符串
我从服务器返回了一些JSON数据
有时数据是一个数组,有时返回一个空字符串(是的,我知道它应该返回一个空数组)
所以我需要首先检查类型是否是字符串的实例;如果是这样的话,我将忽略它,继续生活
否则我需要读入值
如何确定对象是否为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": ""
} }
# 1 楼答案
你有这个
但是你没有在这里使用
json
。你第二次提取了getJSONObject("Notes")
试试看
如果不行,我会试试
我不确定如果对一个对象值使用
getString("Notes")
会发生什么。它可能会toString
记住它,但我最近没有试过记住它