场景描述:来了段 "[{}]"这样的Json数据, 一开始我取到这个数组了,但我看到里面的{}这个东西,以为它是空的…
开始{}对象的调查之旅吧~~
(话说怎么换行)
Java代码:
//TestBean
//测试 [{}] //理想情况 [{"key":"value"}]
String value = "[{}]";
String value2 = "[{\"key\":\"value\"}]";
String value3 = "[{\"errorKey\":\"errorValue\",\"Mimi\":{\"key\":0,\"isGirl\":true},\"key\":\"value\"}]";
JSONArray jsonArray = JSONObject.parseArray(value3); // 测试异常情况
if (jsonArray == null) {
//转换失败,说明它不是数组形式
} else {
if (jsonArray.size() == 0) {
//说明它是空数组
} else {
//说明它不是空数组,至少有1个元素
JSONObject jsonObject = jsonArray.getJSONObject(0);
/*if (jsonObject == null) {
//说明这个JSON对象为空
Logcat.e("{} 对应的jsonObject: 为null!!");
} else {
//说明这个JSON对象不为空
//TODO 测试结果是它走到了这里
Logcat.d("{} 对应的jsonObject: 不为null");
}*/
TestBean testBean = jsonObject.toJavaObject(TestBean.class);
if (testBean == null) {
Logcat.e("TestBean: \n" + null + "\n这个java对象是空的噢噢噢!");
} else {
Logcat.d("TestBean: \n" + testBean + "\n这个java对象不是空的嗯嗯嗯");
}
}
}
String value5 = "{\"key\":\"value\"}";
TestBean testBean2 = JSONObject.parseObject(value5, TestBean.class);
if (testBean2 == null) {
Logcat.e("> TestBean2: \n" + null + "\n这个java对象是空的噢噢噢!");
} else {
Logcat.d("> TestBean2: \n" + testBean2 + "\n这个java对象不是空的嗯嗯嗯");
}
String value4 = "{}";
TestBean testBean = JSONObject.parseObject(value4, TestBean.class);
if (testBean == null) {
Logcat.e("> TestBean: \n" + null + "\n这个java对象是空的噢噢噢!");
} else {
Logcat.d("> TestBean: \n" + testBean + "\n这个java对象不是空的嗯嗯嗯");
}
代码执行结果:
{}
可以理解,这个东西为1个特殊的对象,即不为null
时间问题,简单总结,到此为止。