请求处理代码
while($op=db_fetch_object($result))
{
$data[$i++]=array($op->name,$op->age,$op->dept);
}
echo json_encode($data);$data包含
["Aadidev“、"23”、"division1“、"Ragman”、"35“、"division3”、"Sahlaad“、"27”、"division1“、"Maraadhak”、"21“、"division2”、"Arya“、"48”、"division1“、"Shank”、"25“、"division1”、"Aatmaj“、"54”、"division1“、"Abhay”、"46“、"division2”、"Bhinatha","37“、"division2”、"Abhineet“、"29”、"division3“、"Srita”、"47“、"division1"]
Android代码
String nameop="";
try{
JSONObject json=new JSONObject(page);
JSONArray namearr=json.names();
JSONArray valarr=json.toJSONArray(namearr);
for(int i=0;i<valarr.length();i++)
{
nameop+=namearr.getString(i)+" "+valarr.getString(i)+"\n";
}
result.setText(nameop);
}catch(Exception e){
Toast.makeText(this,e.toString(), Toast.LENGTH_LONG).show();
}这将导致异常
org.json.JSONException: JSONObject文本必须以'{‘开头["Aadidev“、"23”、“division1”、"Ragman“、"35”、"division3“、"Sahlaad”、"27“、”division1“、"Maraadhak”、"21“、"division2”、"Arya“、"48”、“division1”、"Shank“、"25”、“division1”、"Aatmaj“、"54”、"division1","Abhay“、"46”、"division2“、"Bhinatha”、"37“、"division2”、"Abhineet“、"29”、"division3“、"Srita”、"47“、”division1“。
发布于 2010-10-15 13:06:23
可以使用echo json_encode($data, JSON_FORCE_OBJECT);强制创建对象。
仅仅在数组上使用json_encode()并不能生成对象,这似乎是Java的JSONObject假设的。
这是PHPPH5.3!
发布于 2010-10-15 07:06:37
您的json字符串确实应该以“{”字符开头。尝试从您的php应用程序中解析字符串,看看会发生什么。
发布于 2010-10-15 07:18:51
尝试更改您的php代码:
while($op=mysql_fetch_array(mysql_query(您的查询))
{
$data[$i]["name"]= $op["name"];$data$i= $op“年龄”;
$data$i= $op“部门”;
主要产品为$i++;
}
回声json_encode($data);
这将返回如下所示的json字符串:
{“名称”:“name1”,“年龄”:“age1”,"dept":"dept1"},{“名称”:“name2”,“年龄”:“age2”,“age2”:“dept2”}
然后,您需要用java代码解析这个json字符串。
https://stackoverflow.com/questions/3939993
复制相似问题