Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将JSONObject转换为类对象?_Android_Gson - Fatal编程技术网

Android 如何将JSONObject转换为类对象?

Android 如何将JSONObject转换为类对象?,android,gson,Android,Gson,我需要为我的一个android项目使用gson库将JSONObject转换为Location对象。我不知道该怎么做。有人能帮我吗。提前谢谢 我有一个类似的代码 JSONArray input = new JSONArray(extras.getString("loc_json")); 我想将从JSONArray获取的JSONObject转换为Location类对象。我只是想知道是否有一个函数可以直接执行它 如果我把这个问题框错了,请原谅。因为我没有直接函数,所以我是这样做的 loc_temp

我需要为我的一个android项目使用gson库将JSONObject转换为Location对象。我不知道该怎么做。有人能帮我吗。提前谢谢

我有一个类似的代码

JSONArray input = new JSONArray(extras.getString("loc_json"));
我想将从JSONArray获取的JSONObject转换为Location类对象。我只是想知道是否有一个函数可以直接执行它

如果我把这个问题框错了,请原谅。因为我没有直接函数,所以我是这样做的

 loc_temp = (Location) gson.fromJson(input.getJSONObject(i).toString(), Location.class);;
抱歉这个愚蠢的问题。

对于GSON,我认为这应该有助于加强您的理解。基本上,解析是这样完成的:

String mJsonString = "...";
JsonParser parser = new JsonParser(); 
JsonElement mJson =  parser.parse(mJsonString);
Gson gson = new Gson();
MyDataObject object = gson.fromJson(mJson, MyDataObject.class);

使用com.google.gson.JsonObject&JsonArray代替org.json*

像这样:

Gson gson = new Gson();
Type typeOfT = new TypeToken<List<Location.class>>(){}.getType();
JsonParser parser = new JsonParser();
JsonObject jo = (JsonObject) parser.parse(jsonStr);
JsonArray ja = jo.getAsJsonArray("memberName");
list = gson.fromJson(ja, typeOfT);
Gson-Gson=new-Gson();
类型typeOfT=newtypetoken(){}.getType();
JsonParser=新的JsonParser();
JsonObject jo=(JsonObject)parser.parse(jsonStr);
JsonArray ja=jo.getAsJsonArray(“成员名”);
list=gson.fromJson(ja,typeOfT);

如果仍要使用org.json.JSONObject:

org.json.JSONObject o;
ObjectMapper m = new ObjectMapper();
MyClass myClass = m.readValue(o.toString(), MyClass.class);
为科特林

 val objType = object : TypeToken<MyClass>() {

    }.getType()
    var myclassObj = gson.fromJson(value,objType) 

它应该是“newJSONParser().parse(…)”。。花了几分钟试图找出问题出在哪里ObjectMapper在这里是什么?我猜:com.fasterxml.jackson.databind.ObjectMapper它是如何连接到gson的?
 val objectResponse = Gson().fromJson(Gson().toJson(resp), MyClass::class.java)