我想从Android获取此JSON数据
{"success":1,"message":"Product successfully created."}
完整的代码在这里:
<?php
header('Content-type: application/json');
mysql_connect("127.0.0.1","root","");
mysql_select_db("android");
$fname=$_POST['firstname'];
$lname=$_POST['lastname'];
$username=$_POST['username'];
$password=$_POST['password'];
$sql=mysql_query("select * from info ");
if($sql)
{
$response["success"] = 1
$response["message"] = "Product successfully created.";
echo json_encode($response);
}
else
{
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
$data[]=$response;
// echoing JSON response
echo json_encode($response);
echo json_encode($data);
}
while($row=mysql_fetch_array($sql))
$output[]=$row;
json_encode($output);
print(json_encode($output));
mysql_close();
?>
我想要做的是获得响应是否成功失败其余工作,例如从数据库中检索数据。
我试过这段代码:
JSONObject obj=new JSONObject(sb.toString())
然后
JSONObject objdata=obj.getJSONObject('success');
但是出现了“类型不匹配”和“无法转换”等错误
答案 0 :(得分:2)
正如@Shaiful所说,成功不是一个对象。
要么使用obj.getInt(“成功”)来获取它,要么将你的回报改为更像这样的东西;
{
"success":{
"id":1,
"message":"Product successfully created."
}
}
如果您只是在PHP中编写更多面向对象而不是转换数组,那么这将更自动,因为json_encode();如果给它一个对象,也会为你创建一个合适的json字符串。
编辑:您应该真正结合JSON及其语法查找类型(对象,数组,整数,字符串...)。看看你的评论,你不会得到很多。
对于Android中的上述JSON字符串,请创建一个包含Integer id
和String message
的对象成功。
然后使用Gson
库自动提取它:
Success mSuccess = gson.fromJson(jsonString, Success.class);