gpt4 book ai didi

java - 从 PHP 编码的 JSON 数据中获取 Null,输出到 Java

转载 作者:行者123 更新时间:2023-12-01 18:54:16 25 4
gpt4 key购买 nike

我在 PHP 中的 JSON 输出是这样完成的:

 print json_encode(array('rate' => $topcat, 'hometown' => $hometown, 'talk' => $talk));

我的 JSON 输出在浏览器中如下所示:

{"rate":"电影","hometown":"华盛顿州西雅图","talk":"电影"}

在 Java/Android 中我这样做:

protected void onPostExecute(Void v) {

    try {
JSONArray jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);


Hometown = json_data.getString("hometown");
FavCategory = json_data.getString("rate");
Talk = json_data.getString("talk");



}
} catch (JSONException e1) {

} catch (ParseException e1) {
e1.printStackTrace();
}

if (Hometown.equals("")) {
Hometown = "Not Specified";
}

tvHometown.setText(Hometown);
tvRate.setText(FavCategory);
tvTalk.setText(Talk);

Log.d("Log: ", Hometown + " " + FavCategory + " " + Talk);

}

}

在该日志上,我得到:西雅图,华盛顿州,null,null

有人能明白为什么吗?

编辑:新的 Java 代码,仍然出现错误:

String homeTown = "", favCategory = "", favTalk = "";
try {
JSONObject jsonData = new JSONObject(result);

homeTown = jsonData.getString("hometown");
favCategory = jsonData.getString("rate");
favTalk = jsonData.getString("talk");


tvHometown.setText(homeTown);
tvRate.setText(favCategory);
tvTalk.setText(favTalk);




} catch (JSONException e1) {

} catch (ParseException e1) {
e1.printStackTrace();
}

我遇到异常:

02-05 08:51:48.078: E/log_tag(22958): Error in http connection org.json.JSONException: Value null of type org.json.JSONObject$1 cannot be converted to JSONArray

最佳答案

尽管the PHP vocabulary ,此 JSON 的顶级元素:

{"rate":"Movies","hometown":"Seattle, WA","talk":"Movies"}

an object (a key-value mapping), not an array{} 是一个致命的赠品。

改变这个

JSONArray jArray = new JSONArray(result);

对此:

JSONObject jsonData = new JSONObject(result);

然后从那里开始:

String hometown = jsonData.getString("hometown");
String favCategory = jsonData.getString("rate");
String talk = jsonData.getString("talk");

注意如何,as a matter of good Java style ,我使用 lowerCamelCased 变量名称。

关于java - 从 PHP 编码的 JSON 数据中获取 Null,输出到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14699301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com