我正在使用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\"}"
它有效。能不能让我知道最好的办法是什么?
答案 0 :(得分:2)
JSONArray jsonarray = new JSONArray(response);
for (int i = 0; i < jsonarray.length(); i++) {
JSONObject jsonobject = jsonarray.getJSONObject(i);
String username= jsonobject.getString("username");
String user_fname= jsonobject.getString("user_fname");
String user_work= jsonobject.getString("user_work");
}
这是正确的方法。
答案 1 :(得分:0)
答案 2 :(得分:0)
尝试像这样更改您的Java代码
JSONArray jsonArray= new JSONArray(response);
JSONObject jObject=jsonArray.getJSONObject(0);
String aJsonUsername = jObject.getString("username");
String aJsonFname = jObject.getString("user_fname");
String aJsonUserWork = jObject.getString("user_work");
使用此
替换try块中的代码