运行网址后,我将以下列形式获取数据
[
{
"user_name": "riz",
"gems_available": "10",
"free_gems": "110"
},
{
"match_name": "ausvsind",
"Match_start_time": "2016-03-27 19:00:56",
"season_name": "Mid-Season"
}
]
现在我想得到user_name和所有数据,但无法做到..我在运行我的应用程序但是无法获取后得到结果中的数据。我有我的java代码。请帮助我,我错了
JSONObject jsonObj = new JSONObject();
jsonObj.put("user_id", "abc@hotmail.com");
jsonArray = new JSONArray();
jsonArray.put(jsonObj);
final HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(USER_URL);
String str = jsonArray.toString().replace("[", "");
String str1 = str.replace("]", "");
httppost.setEntity(new StringEntity(str1.toString()));
resp = httpclient.execute(httppost);
HttpEntity ent = resp.getEntity();
result = EntityUtils.toString(ent);
jsonArray1.put(result);
jsobj = new JSONObject(result);
us1 = jsobj.getString(TAG_USER_NAME);
us2 = jsobj.getString(TAG_GEMS_AVAILABLE);
us3 = jsobj.getString(TAG_GEMS_FREE);
答案 0 :(得分:0)
看看Retrofit:它可以帮助您自动将JSON解析为java POJO,并帮助您避免使用非差分样板
答案 1 :(得分:0)
为什么要删除“[”和“]”字符?那些是JSONArray的一部分?如果您不想要它们,请改用JSONObject。
我没有对此进行测试,因此会出现一些问题。从概念上讲,这应该对你有用:
JSONObject jsonObj = new JSONObject();
jsonObj.put("user_id", "abc@hotmail.com");
final HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(USER_URL);
httppost.setEntity(new StringEntity(jsonObj.toString()));
resp = httpclient.execute(httppost);
HttpEntity ent = resp.getEntity();
result = EntityUtils.toString(ent);
JSONArray jsonArr = new JSONArray(result);
for (int i = 0; i < jsonArr.length(); i++)
{
JSONObject jobj = jsonArr.getJSONObject(i);
if (jobj.has("user_name"))
{
us1 = jobj.getString("user_name");
}
if (jobj.has("gems_available"))
{
us2 = jobj.getString("gems_available");
}
if (jobj.has("free_gems"))
{
us3 = jobj.getString("free_gems");
}
}
答案 2 :(得分:0)
当我必须从Json获取数据时,我总是你序列化。
查看GSON。有了它,您必须创建与json体系结构匹配的模型对象。之后,您可以轻松访问所有json属性。
答案 3 :(得分:0)
使用现代库进行API调用,例如 Retrofit 2.0 与 GSON 。
阅读:https://github.com/square/retrofit
http://www.jsonschema2pojo.org/