我的问题是我在Rest Api中有一个名为name的Json对象。登录/注册后,我需要获取它并在我的应用程序中显示textView15字段。我不知道如何获取和显示Json。任何帮助都会很明显。
Api是:
{
"users": {
"_id": "gcx8ksa4XepvYRyWH",
"emails": [
{
"address": "selenium@gmail.com",
"verified": false
}
]
},
"user": {
"_id": "wWHmKn5ciWAHZGt2m",
"user_id": "gcx8ksa4XepvYRyWH",
"name": "selenium@gmail.com",
"hubs": [],
"username": "selenium",
"industry": "selenium",
"profession": "selenium"
}
}
我的代码:
AsyncHttpClient client = new AsyncHttpClient();
applyJobItems.clear();
List<String> userCredentials = UserUtils.getLoginDetails();
client.addHeader("x-user-id", userCredentials.get(0));
client.addHeader("x-auth-token", userCredentials.get(1));
client.get("https://", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
final String response = new String(responseBody);
android.util.Log.e("Response", "" + response);
try {
JSONObject jsonObject = new JSONObject(response);
final JSONArray jsonArray = jsonObject.getJSONArray("user");
final List<String> names = new ArrayList<String>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject inter = new JSONObject(jsonArray.get(i).toString());
ApplyJobItem jobItem = new ApplyJobItem();
jobItem.setName(inter.getString("name"));
names.add(inter.getString("name"));
applyJobItems.add(jobItem);
android.util.Log.e("name", inter.getString("name"));
}
}catch (Exception e) {
e.printStackTrace();
}
答案 0 :(得分:1)
将这个json放在android中的JSONObject
变量中并像
String name = jsonObject.getJSONObject('user').getString('name');
此处jsonObject
是您从服务器获取的主要json对象的名称..
编辑:Json Parsing教程。
这里有一些指导如何解析json
http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
答案 1 :(得分:1)
您可以使用凌空按照以下方式轻松获取数据并渲染到视图中......
登录此代码后执行...
SSIS Upgrade Wizard in SQl Server Data Tools
凌空的应用配置类(需要添加凌空库)
详细了解凌空Get Volley
List<Users> list = new ArratList<Users>();
CustomUserAdapter adapter;
JsonArrayRequest getJsonData = new JsonArrayRequest("<your_url>,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
for (int i = 0; i < response.length(); i++) {
try {
Users mList = new Users();
JSONObject obj = response.getJSONObject(i);
JSONArray answers = obj.getJSONArray("emails");
long count = answers.length();
if(count > 0){
//setter methods
}
mList.setIDL(obj.getString("_id"));
list.add(mList);
} catch (JSONException e) {
Log.d("JSONError", e.toString());
}
}
adapter.notifyDataSetChanged();
//your listview findViewById().....
listView.setVisibility(View.VISIBLE);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),"Error in fetchinf data",Toast.LENGTH_LONG).show();
}
});
AppController.getInstance().addToRequestQueue(getJsonData);
}
答案 2 :(得分:-1)
使用Retrofit。它会为你解析。