如何使用json获取此数据。我已经尝试过了,但是没有用。我对如何获取以下数据非常困惑。任何帮助表示赞赏
{
"sftid": [
"sfta"
],
"todate": 205618.268,
"today": 5307.174,
"sfta": 5093.717,
"sftb": 213.457,
"sftc": 0,
"cropday": 21,
"crushingday": 21,
"vtractor": 4535.075,
"vtruck": 532.687,
"vbcart": 239.412,
"yestitons": 6374,
"ytractor": 248,
"ytruck": 90,
"ybcart": 40,
"ycart": 48,
"hr1": 515.043,
"hr2": 625.651,
"hr3": 706.789,
"hr4": 626.796,
"hr5": 630.639,
"hr6": 608.053,
"hr7": 604.559,
"hr8": 776.187
}
JSONObject jobject = new JSONObject(response);
JSONObject jsonObj = jobject.getJSONObject("todate");
答案 0 :(得分:2)
您可以这样做
JSONObject jobject = new JSONObject(response);
然后
double todate = jobject.getDouble("todate");
and so on as per the data type
或者简单地,您可以使用http://www.jsonschema2pojo.org/,这将帮助您将json数据转换为模型类,您可以使用该模型类轻松获取数据。
为此,您需要使用Gson库。
因此,假设您使用上面的链接创建的类为"Myresponse"
,则可以将其用作
Gson gson = new Gson();
Myresponse data = gson.fromJson("<your json resopnse>",Myresponse.class);
答案 1 :(得分:0)
您可以尝试:
JSONObject jobject = new JSONObject(response.toString());
JSONObject jsonObj = jobject.getJSONObject("todate");
答案 2 :(得分:0)
如您所见,响应包含一个JSONObject,其中包含许多元素,第一个元素是JSONArray,其余元素可以当作double / String。 它如下:
JSONObject json = new JSONObject(response);
JSONArray sftid_array = json.getJSONArray("sftid");
ArrayList<String> sftid = new ArrayList();
for(int i = 0; i < sftid_array; i++) {
sfid.put(sftid_array.getString(i));
}
double todate = json.getDouble("todate");
double today = json.getDouble("today");
double sfta = json.getDouble("sfta");
double sftb = json.getDouble("sftb");
.
.
.
and so on
您还可以使用Array来存储JSONArray的数据。不要忘记将其放在try catch中,因为它可能会抛出JSONException。