使用 gson 如何从 json 返回第一个和最后一个元素,以便获取这种格式的数据?
System.out.println("Student: BobGoblin - result: 59");
我已经尝试过了,但它仍然返回完整的 JSON 对象
JsonObject jsonObject = new Gson().fromJson(content.toString(), JsonObject.class);
return jsonObject.get(domain) + " - " + jsonObject.get(result.toString());
最佳答案
首先:toJson 将某些内容转换为 json。您想将 json 转换为某种对象。因此,请改用 fromJson
。
其次构建一个可以将数据放入其中的对象。 gson 的手册网站上有很多示例: https://github.com/google/gson/blob/master/UserGuide.md
让我为您编码。这并不难:
import java.util.Map;
import com.google.gson.Gson;
public class GsonTest {
public static void main(String args[]) {
Gson gson = new Gson();
String json = "{\"name\":\"Bog\", \"foo\":\"bar\", \"result\": 59}";
// Using a map
@SuppressWarnings( "unchecked" )
Map<String,Object> map = gson.fromJson( json, Map.class );
System.out.println( "Name: " + map.get( "name" ) + " result: " + map.get( "result" ) );
// Better: using an object
Student student = gson.fromJson( json, Student.class );
System.out.println( "Name: " + student.name + " result: " + student.result );
}
public static class Student {
public String name;
public String foo;
public int result;
}
}
这将导致:
Name: Bog result: 59.0
Name: Bog result: 59
一般方法是:获取json字符串并将其放入某种java对象中。然后访问该 java 对象以获取您的数据。
请注意,使用第二种方法您可以更好地控制将接收的数据类型。由于 json 没有指定数据类型,解析器会猜测 float/double
的年龄,而在第二个示例中使用 int
因为类是这么说的。
关于java - 如何返回 Json 的第一个和最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60643491/