4

我正在使用 Gson 来提取一些字段。顺便说一句,我不想​​创建一个类,因为我在所有 JSON 响应中只需要一个值。这是我的回应:

{
    "result": {
        "name1": "value1",
        "name2": "value2",
    },
    "wantedName": "wantedValue"
}

我需要wantedValue,但我不想为反序列化创建整个类。是否可以使用 Gson 实现这一目标?

4

3 回答 3

4

如果您只需要一个字段,请使用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"));
}

输出:

wantedValue
于 2013-10-23T18:17:58.730 回答
1

如果您不必使用 Gson,我会使用https://github.com/douglascrockford/JSON-java。您可以轻松提取单个字段。我找不到使用 Gson 做这么简单的事情的方法。

你会做的

String wantedName = new JSONObject(jsonString).getString("wantedName");
于 2013-10-23T18:26:17.443 回答
0

可以只使用gson的一部分,只用它来解析json:

Reader reader = /* create reader from source */
Streams.parse(new JsonReader(reader)).getAsJsonObject().get("wantedValue").getAsString();
于 2013-10-23T18:21:37.480 回答