2015-11-17 81 views
1

我目前正在从API中提取JSON字符串。问题是,空间可能会改变数据的拉取方式。如何检查JSON数据是对象还是字符串?

例如:

随着一个空间,该JSON来通过作为对象我需要解析获取内容;

"d:Street1": { 
     "-xml:space": "preserve", 
     "#text": "123 space street " 
    }, 

没有空格,它只是简单地拉动字符串;

"d:Street1": "123 space street", 

如何检查“d:Street1”是JSONObject还是只是一个字符串?

编辑:解

Object street1 = jobProperties.get("d:Street1"); 

      if (street1 instanceof JSONObject) { 
       JSONObject JobStreet11 = jobProperties.getJSONObject("d:Street1"); 
       jobStreet1 = JobStreet11.getString("content"); 
      } else { 
       jobStreet1 = jobProperties.getString("d:Street1"); 
      } 
+0

你是什么意思“的空间可以改变数据是如何拉”? – Unni

+0

如果您在上面看一看,放入系统的街道名称的唯一区别是最后一个空格。他们没有修剪任何东西,所以它节省了太多的空间,作为选项1出现。在街道1末端没有空间的情况下,它作为选项2出现。 – Noodelz

回答

1

您可以使用此条件

Object json = new JSONTokener(data).nextValue(); 

if (json instanceof JSONObject){ 

}else if (json instanceof JSONArray){ 

} 
+0

谢谢你。我会改变一下,但我认为这可以工作:)如果是的话,会试试看,并回来标记为正确。 – Noodelz

+0

我改变了这一点,但它的工作谢谢:)参考上面的编辑。 – Noodelz

+0

快乐,你做:) 把你的最终代码,如果你可以 –

相关问题