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

Java 将字符串转换为JSON并获取值,java,android,json,string,Java,Android,Json,String,我有这个字符串: {"markers":[{"tag":"1","dep":"2"}]} 如何将其转换为JSON并获取值tag和dep?要做到这一点,您需要JSONObject JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET,url, null, new Response.Listener<JSONObject>() { @Override public void

我有这个字符串:

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

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

要做到这一点,您需要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");
    }
}
JsonObjectRequest jsObjRequest=newjsonobjectrequest(Request.Method.GET,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
字符串标记,dep;
JSONArray jArray=response.getJSONArray(“标记”);
JSONObject msg=jArray.getJSONObject(0);
tag=msg.getString(“tag”);
dep=msg.getString(“dep”);
}
}
试试看
{
JSONObject对象=新的JSONObject(json_str);
JSONArray数组=object.getJSONArray(“标记”);

对于(inti=0;i这里,您可以找到您的解决方案。尝试一下

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

将json序列化为pojo对象是很好的习惯用法

在这里,您可以使用Gson(一个将json序列化/反序列化为pojo对象的google库)

假设您正在使用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;
    }
  }
}

您可以使用离子库进行此操作,并按如下方式对其进行解析:

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();
            }

        }
    });
Ion.with(MainActivity.this).load(“url”).asJsonObject().setCallback(new FutureCallback()){
@凌驾
未完成公共无效(异常arg0,JsonObject arg1){
//TODO自动生成的方法存根
如果(arg0==null)
{
arg1.get(“markers”).getAsJsonArray();
JsonObject Jobj=arg1.getAsJsonObject();
String tag=Jobj.get(“tag”).getAsString();
字符串dep=Jobj.get(“dep”).getAsString();
}
}
});

很抱歉,什么是参数响应类型,没有initiate…非常感谢Webster..使用截击获取json
Gson gson = new Gson();
Markers markers = gson.fromJson(<jsonstring>.toString(), Markers.class);
for(MarkersEntity data:markers.getMarkersEntity())
{
     String tag = data.getTag();
     String dep = data.getDep();
     Log.d("JSON to Object", tag +"-"+dep);
}
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();
            }

        }
    });