【发布时间】:2017-09-09 14:07:41
【问题描述】:
我正在使用json_encode 在 PHP 中创建 JSON 字符串。 $result 是我的 SQL 结果。
$final_op="";
if(empty($result) == false){
$rows = array();
while($r = mysqli_fetch_assoc($result)) {
$rows[] = $r;
}
$final_op=json_encode($rows);
}
当我在客户端得到这个 json 字符串时,我得到它就像
[{"username":"vikasdevde","user_fname":"Vikas Devde","user_work":"Programmer"}]
我正在用 Java 解析它,如下所示
try{
JSONObject jObject = new JSONObject(response);
String aJsonUsername = jObject.getString("username");
String aJsonFname = jObject.getString("user_fname");
String aJsonUserWork = jObject.getString("user_work");
}catch(JSONException e){
e.printStackTrace();
System.out.println("JSON Exception");
}
但我得到一个 JSONException,可能是因为方括号周围,因为经过一些研究,我尝试使用硬编码字符串
"{\"username\":\"vikasdevde\",\"user_fname\":\"Vikas Devde\",\"user_work\":\"Programmer\"}"
它奏效了。能否请您告诉我处理此问题的最佳方法是什么?
【问题讨论】:
-
我不知道如何在 java 中阅读此内容,但您正在发送一个数组。您必须在 JAVA 中对其进行解析。编辑:在你的代码中,你似乎只是想把它当作一个简单的对象来读取,而不是一个数组 os 对象。
-
是否期望您总是从结果集中准确地得到一行?
-
@FirstOne 是的,这就是我在这里要问的,它作为数组发送,我正在寻找处理这个问题的最佳方法。
-
您应该使用 JSONArray 来迭代顶级项目并将每个数组项目作为 JSONObject 获取。
-
@RajdeepPaul 对于这种情况,我在结果中只得到一行,但如果您还可以提供一些关于如何使用多行完成的信息,这可能有助于我或其他任何人阅读。跨度>
标签: java php android json jsonexception