Tag: gson

Gson Java保留关键字

我有一些JSON,我使用Gson反序列化。 { “resp”: { “posts”: [ { … “public”: true, … }] } 我的问题是public是一个Java关键字,那么我如何在我的类中创建一个与JSON中的public字段相关的字段?

使用GSON解析嵌套的JSON数据

我正在尝试使用具有以下结构的Java中的gson解析一些JSON数据,但通过在线查看示例,我找不到任何可以完成工作的东西。 有人能帮忙吗? { “data”:{ “id”:[ { “stuff”:{ }, “values”:[ [ 123, 456 ], [ 123, 456 ], [ 123, 456 ], ], “otherStuff”:”blah” } ] } }

GSON将键值反序列化为自定义对象

我需要反序列化json,这是一个日期/长值数组。 以下是返回的JSON的示例: [{“2011-04-30T00:00:00-07:00”:100}, {“2011-04-29T00:00:00-07:00”:200}] 使用GSON我可以将它反序列化为List<Map> ,但是希望能够将它转换为List类似于: public class MyCustomClass() { Date date; Long value; } 我似乎无法找到一种方法来指示GSON将JSON映射的键/值映射到我的自定义类中的日期/值字段。 有没有办法做到这一点,或者是地图列表唯一的路线?

预计BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT

我收到了以下错误。 由于以下原因无法解析JSON:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT 服务器URL public static final String SERVER_URL = “https://maps.googleapis.com/maps/api/timezone/json?location=-37.8136,144.9631&timestamp=1389162695&sensor=false”; 执行请求 try { // Create an HTTP client HttpClient client = HttpClientBuilder.create().build(); HttpPost post = new HttpPost(SERVER_URL); // Perform the request and check the status code HttpResponse response = client.execute(post); StatusLine statusLine = response.getStatusLine(); if (statusLine.getStatusCode() == 200) { HttpEntity entity = response.getEntity(); InputStream content […]

为什么Gson fromJson抛出一个JsonSyntaxException:预期BEGIN_OBJECT但是BEGIN_ARRAY?

(这篇文章是一个规范性的问题 ,下面提供了一个示例答案。) 我正在尝试使用Gson#fromJson(String, Class)将一些JSON内容反序列化为自定义POJO类型。 这段代码 import com.google.gson.Gson; public class Sample { public static void main(String[] args) { String json = “{\”nestedPojo\”:[{\”name\”:null, \”value\”:42}]}”; Gson gson = new Gson(); gson.fromJson(json, Pojo.class); } } class Pojo { NestedPojo nestedPojo; } class NestedPojo { String name; int value; } 抛出以下exception Exception in thread “main” com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but […]

使用GSON处理随机生成和不一致的JSON字段/密钥名称

我有以下JSON代码段: { “randomlygeneratedKeyname0” : “some-value”, “randomlygeneratedKeyname1”: { “randomlygeneratedKeyname2” : { “randomlygeneratedKeyname3”: “some-value”, “randomlygeneratedKeyname4”: “some-value” }, “randomlygeneratedKeyname5”: { “randomlygeneratedKeyname6”: “some-value”, “randomlygeneratedKeyname7”: “some-value” } } } 请注意,我不知道randomgeneratedKeyname的名称及其命名约定是不一致的,因此我无法创建相应的Java字段/变量名称。 我如何(de)在GSON中序列化它? 在此先感谢您的帮助。

如何使用Gson解码未知字段的JSON?

我有类似这样的JSON: { “unknown_field”: { “field1”: “str”, “field2”: “str”, “field3”: “str”, “field4”: “str”, “field5”: “str” }, …… } 我创建了一些类来映射这个json public class MyModel implements Serializable { private int id; private HashMap models; // getters and setter for id and models here } 和类Model1是一个只有String字段的简单类。 但它不起作用。 编辑 : JSON格式如下所示: { “1145”: { “cities_id”: “1145”, “city”: “Nawanshahr”, “city_path”: “nawanshahr”, “region_id”: […]