将字符串转换为JSON并获取值

时间:2016-01-16 02:11:18

标签: java android json string

我有这个字符串:

{"markers":[{"tag":"1","dep":"2"}]}

如何将其转换为JSON并获取值tagdep

5 个答案:

答案 0 :(得分:1)

您需要 JSONObject 来执行此操作

JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET,url, null, new Response.Listener<JSONObject>() {

    @Override
    public void onResponse(JSONObject response) {
        String tag, dep;

        JSONArray jArray = response.getJSONArray("markers");
        JSONObject msg = jArray.getJSONObject(0);
        tag = msg.getString("tag");
        dep = msg.getString("dep");
    }
}

答案 1 :(得分:0)

try
{
JSONObject object = new JSONObject(json_str);
JSONArray array= object.getJSONArray("markers");

for(int i=0;i<array.length();i++)
{
JSONObject obj= array.getJSONObject(i);
String tag= obj.getString("tag");
int dep= obj.getInt("dep");

}

}catch(JSONException e){


}

希望这有帮助。

答案 2 :(得分:0)

在这里,您可以找到解决方案。试试吧。

JSONObject mainObject = new JSONObject("{"markers":[{"tag":"1","dep":"2"}]}");
JSONArray uniArray = mainObject.getJSONArray("markers");
JSONObject subObject = uniArray.getJSONObject(0);
String tag = subObject.getString("tag");
String dep = subObject.getString("dep"):

答案 3 :(得分:0)

将json序列化为pojo对象是一个很好的习惯..

在这里你可以使用Gson(一个谷歌库来序列化/反序列化json到pojo对象)

  

假设您正在使用Android-Studio IDE进行Android开发

步骤1:在模块范围的build.gradle文件中添加此gson依赖项

compile 'com.google.code.gson:gson:2.4'

第2步:为json创建模型

{"markers":[{"tag":"1","dep":"2"}]}

<强> Markers.java

public class Markers {
/**
 * tag : 1
 * dep : 2
 */

private List<MarkersEntity> markers;

public void setMarkers(List<MarkersEntity> markers) {
    this.markers = markers;
}

public List<MarkersEntity> getMarkers() {
    return markers;
}

public static class MarkersEntity {
    private String tag;
    private String dep;

    public void setTag(String tag) {
        this.tag = tag;
    }

    public void setDep(String dep) {
        this.dep = dep;
    }

    public String getTag() {
        return tag;
    }

    public String getDep() {
        return dep;
    }
  }
}

步骤3:使用gson

将json字符串序列化为pojo对象
Gson gson = new Gson();
Markers markers = gson.fromJson(<jsonstring>.toString(), Markers.class);

步骤4:迭代markers.getMarkersEntity()以获取tag&amp;的值。 DEP

for(MarkersEntity data:markers.getMarkersEntity())
{
     String tag = data.getTag();
     String dep = data.getDep();
     Log.d("JSON to Object", tag +"-"+dep);
}

答案 4 :(得分:0)

您可以使用Ion Library并按如下方式解析它:

Ion.with(MainActivity.this).load("url").asJsonObject().setCallback(new FutureCallback<JsonObject>() {

        @Override
        public void onCompleted(Exception arg0, JsonObject arg1) {
            // TODO Auto-generated method stub
            if(arg0==null)
            {
                arg1.get("markers").getAsJsonArray();
                JsonObject Jobj=arg1.getAsJsonObject();
                String tag=Jobj.get("tag").getAsString();
                String dep=Jobj.get("dep").getAsString();
            }

        }
    });