我有这个字符串:
{"markers":[{"tag":"1","dep":"2"}]}
如何将其转换为JSON并获取值tag
和dep
?
答案 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();
}
}
});