我正在使用Gson来extrext一些字段。顺便说一下,我不想创建一个类,因为我在所有JSON响应中只需要一个值。下面是我的响应:
{ "result": { "name1": "value1", "name2": "value2", }, "wantedName": "wantedValue" }
我需要wantedValue,但我不想创建整个类来进行反序列化。使用Gson可以实现这一点吗?
wantedValue
wa7juj8i1#
如果只需要一个字段,请使用JSONObject。
JSONObject
import org.json.JSONException; import org.json.JSONObject; public class Main { public static void main(String[] args) throws JSONException { String str = "{" + " \"result\": {" + " \"name1\": \"value1\"," + " \"name2\": \"value2\"," + " }," + " \"wantedName\": \"wantedValue\"" + "}"; JSONObject jsonObject = new JSONObject(str); System.out.println(jsonObject.getString("wantedName")); }
输出:
lymnna712#
如果你不需要使用Gson,我会使用https://github.com/douglascrockford/JSON-java。你可以很容易地提取单个字段。我找不到一种方法来使用Gson做这么简单的事情。你只会
String wantedName = new JSONObject(jsonString).getString("wantedName");
xggvc2p63#
可以只使用gson的一部分,只使用它来解析json:
Reader reader = /* create reader from source */ Streams.parse(new JsonReader(reader)).getAsJsonObject().get("wantedValue").getAsString();
kyvafyod4#
下面是一个可以与gson 2.10版一起使用的版本
import com.google.gson.Gson; import com.google.gson.JsonObject; public class Main { public static void main(String[] args) { String str = "{" + " \"result\": {" + " \"name1\": \"value1\"," + " \"name2\": \"value2\"" + " }," + " \"wantedName\": \"wantedValue\"" + "}"; Gson gson = new Gson(); JsonObject jsonObject = gson.fromJson(str, JsonObject.class); System.out.println(jsonObject.get("wantedName").getAsString()); } }
4条答案
按热度按时间wa7juj8i1#
如果只需要一个字段,请使用
JSONObject
。输出:
lymnna712#
如果你不需要使用Gson,我会使用https://github.com/douglascrockford/JSON-java。你可以很容易地提取单个字段。我找不到一种方法来使用Gson做这么简单的事情。
你只会
xggvc2p63#
可以只使用gson的一部分,只使用它来解析json:
kyvafyod4#
下面是一个可以与gson 2.10版一起使用的版本