gpt4 book ai didi

java - 使用 Java 抓取 JSON 内容

转载 作者:行者123 更新时间:2023-12-02 07:43:56 24 4
gpt4 key购买 nike

这是我在 PHP 中的 json_encode 示例:

print(json_encode($row));

导致{"AverageRating":"4.3"},这很好。

但是在Java中,我似乎无法获取这个4.3值。这是(对于 Android 项目)我编辑了不相关的数据。

 public class Rate extends ListActivity {

JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb = null;
String Item, Ratings, Review, starAvg;
RatingBar ratingsBar;
ArrayList<NameValuePair> param;

public void onCreate(Bundle savedInstanceState) {

starAvg = "0"; // Sets to 0 in case there are no ratings yet.
new starRatingTask().execute();
ratingsBar = (RatingBar) findViewById(R.id.theRatingBar);


class starRatingTask extends AsyncTask<String, String, Void> {

InputStream is = null;
String result = "";


@Override
protected Void doInBackground(String... params) {
String url_select = "http://www.---.com/---/average_stars.php";

ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();
param.add(new BasicNameValuePair("item", Item));


HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url_select);


try {
httpPost.setEntity(new UrlEncodedFormEntity(param));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();

// read content
is = httpEntity.getContent();

} catch (Exception e) {

Log.e("log_tag", "Error in http connection " + e.toString());
}
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = "";
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();

} catch (Exception e) {

Log.e("log_tag", "Error converting result " + e.toString());
}

return null;

}

protected void onPostExecute(Void v) {

String starAvgTwo = null;
try {
jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
starAvg = json_data.getString("AverageRating");

starAvgTwo = starAvg;

}
} catch (JSONException e1) {
Toast.makeText(getBaseContext(), "No Star Ratings!",
Toast.LENGTH_LONG).show();
} catch (ParseException e1) {
e1.printStackTrace();
}


Toast.makeText(getBaseContext(), starAvgTwo,
Toast.LENGTH_LONG).show();

ratingsBar.setRating(Float.valueOf(starAvg));



}
}

第二个 toast 产生一个空白(我假设是一个“” - 空字符串?)。如果我将 toast 变量更改回 starAvg,那么它会烘烤“0”。

如何检索 4.3 的值。

最佳答案

正如我们在原始问题的评论中所讨论的,PHP 作为单个 JSONObject 而不是数组发送。在当前状态下需要解析为 JSONObject;但是,如果您开始发送值对象数组,那么您将使用 JSONArray 来解析它。

关于java - 使用 Java 抓取 JSON 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11163933/

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