如何在Processing中处理空JSONObject?

时间:2015-08-03 09:49:24

标签: json processing jsonobject

您好我在Processing IDE中使用loadJSONObject函数从URL接收JSON对象。 以下是我的代码:

      JSONObject jsonUserLocations = loadJSONObject("http://smrt.utd.sg/eLocation/getLocs.php?userId="+usrID+"&sTime="+strtTime+"&eTime="+endTym);

当php返回一些数据(对于某些用户)时,此代码有效。 如果它没有返回任何数据,则会出现问题。 (当没有数据时,php不会返回任何数据,浏览器显示空白页面。这意味着用户没有位置数据)

在这个例子中,Processing IDE给出了一个错误说明

  

jsonobject文本必须以{

开头

我的问题是如何在这种情况下处理空的JSON对象?如果这是空的我需要跳过并请求下一个用户的数据。非常感谢您的帮助。 谢谢, Hasala

编辑:

这是我有数据时收到的示例json对象。

  

{"位置":[{"纬度":" 1.3809274""经度":" 103.7654596&# 34;," STARTTIME":" 1421918587868""持续时间":" 0""准确性":&# 34; 30"},{"纬度":" 1.3805307""经度":" 103.7661015"&#34 ; STARTTIME":" 1421941711737""持续时间":" 0""准确性":" 45" },{"纬度":" 1.3805304""经度":" 103.7660959"" STARTTIME&#34 ;: #&34; 1421942011727""持续时间":" 0""准确性":" 45"},{&#34 ;纬度":" 1.3799822""经度":" 103.7658037"" STARTTIME":" 1421942311835&# 34;,"持续时间":" 0""准确性":" 82.5"}],"成功" :1}

1 个答案:

答案 0 :(得分:2)

您有两种选择:

您可以首先从URL读取字符串,如果它是空白的,请不要理解解析。

或者您可以捕获Processing抛出的异常:

try{
   JSONObject jsonUserLocations = loadJSONObject("http://smrt.utd.sg/eLocation/getLocs.php?userId="+usrID+"&sTime="+strtTime+"&eTime="+endTym);
}
catch(JSONException e){
   e.printStackTrace();
   //json was blank, do something else
}