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