如何在 Processing 中处理空的 JSONObject?
How to handle empty JSONObject in Processing?
您好,我在 Processing IDE 中使用 loadJSONObject 函数从 URL 接收 JSON 对象。
以下是我的代码:
JSONObject jsonUserLocations = loadJSONObject("http://smrt.utd.sg/eLocation/getLocs.php?userId="+usrID+"&sTime="+strtTime+"&eTime="+endTym);
此代码在 php return 一些数据(对于某些用户)时有效。
当它没有 return 任何数据时,就会出现问题。 (php不return任何数据,当没有数据时,浏览器显示一个空白页面。这意味着用户没有位置数据)
在这种情况下,处理 IDE 给我一个错误提示;
a jsonobject text must begin with {
我的问题是在这种情况下如何处理空 JSON 对象?如果这是空的,我需要跳过并为下一个用户请求数据。非常感谢您的帮助。
谢谢,
哈萨拉
编辑:
这是我在有数据时收到的示例 json 对象。
{"locations":[{"latitude":"1.3809274","longitude":"103.7654596","startTime":"1421918587868","duration":"0","accuracy":"30"},{"latitude":"1.3805307","longitude":"103.7661015","startTime":"1421941711737","duration":"0","accuracy":"45"},{"latitude":"1.3805304","longitude":"103.7660959","startTime":"1421942011727","duration":"0","accuracy":"45"},{"latitude":"1.3799822","longitude":"103.7658037","startTime":"1421942311835","duration":"0","accuracy":"82.5"}],"success":1}
您有两个选择:
你可以先从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
}
您好,我在 Processing IDE 中使用 loadJSONObject 函数从 URL 接收 JSON 对象。 以下是我的代码:
JSONObject jsonUserLocations = loadJSONObject("http://smrt.utd.sg/eLocation/getLocs.php?userId="+usrID+"&sTime="+strtTime+"&eTime="+endTym);
此代码在 php return 一些数据(对于某些用户)时有效。 当它没有 return 任何数据时,就会出现问题。 (php不return任何数据,当没有数据时,浏览器显示一个空白页面。这意味着用户没有位置数据)
在这种情况下,处理 IDE 给我一个错误提示;
a jsonobject text must begin with {
我的问题是在这种情况下如何处理空 JSON 对象?如果这是空的,我需要跳过并为下一个用户请求数据。非常感谢您的帮助。 谢谢, 哈萨拉
编辑:
这是我在有数据时收到的示例 json 对象。
{"locations":[{"latitude":"1.3809274","longitude":"103.7654596","startTime":"1421918587868","duration":"0","accuracy":"30"},{"latitude":"1.3805307","longitude":"103.7661015","startTime":"1421941711737","duration":"0","accuracy":"45"},{"latitude":"1.3805304","longitude":"103.7660959","startTime":"1421942011727","duration":"0","accuracy":"45"},{"latitude":"1.3799822","longitude":"103.7658037","startTime":"1421942311835","duration":"0","accuracy":"82.5"}],"success":1}
您有两个选择:
你可以先从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
}