Tag: gson

来自Gson的JSON字符串:删除双引号

这是我的Json代码的示例: array(“id” => 0, “navn” => “Vind telefon”, “udgiver” => “Telia”, “beskrivelse” => utf8_encode(“Vind en Iphone 5 ved at gætte 1 spørgsmål”), “tilmeldte” => 89, “startdate” => “10-04-2013”, “enddate” => “30-06-2013”), 如果我在程序中打印出navn属性,我会得到以下输出: “Vind Telefon” 如你所见,它保留了双引号。 有什么办法可以避免吗? 我的完整代码: 0, “navn” => “Vind telefon”, “udgiver” => “Telia”, “beskrivelse” => utf8_encode(“Vind en Iphone 5 ved at gætte 1 […]

Gson数组字符串到JsonArray

我正在使用Gson,我正在尝试将一堆字符串值添加到JsonArray如下所示: JsonArray jArray = new JsonArray(); jArray.add(“value1”); 问题是add方法只接受JsonElement 。 我试图将一个String转换为一个JsonElement但是没有用。 我如何使用Gson做到这一点?

使用Gson从JSON对象获取键名

我有一个JSON对象,我想从中获取密钥名称并将它们存储在ArrayList中。 我使用了以下代码 jsonData(String filename) { JsonParser parser = new JsonParser(); JsonElement jsonElement = null; try { jsonElement = parser.parse(new FileReader(filename)); } catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } JsonObject jsonObject = jsonElement.getAsJsonObject(); int i = 0; for (Entry entry : jsonObject.entrySet()) { String key = entry.getKey(); JsonElement […]

Gson.toString()给出错误“IllegalArgumentException:多个名为mPaint的JSON字段”

我想将自定义对象转换为字符串并保存在SharePreferences中,这是我的最终目标。 我尝试下面的线失败了。 String matchString = gson.toJson(userMatches); Logcat: 10-11 15:24:33.245: E/AndroidRuntime(21427): FATAL EXCEPTION: main 10-11 15:24:33.245: E/AndroidRuntime(21427): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=4001, result=-1, data=null} to activity {com.objectlounge.ridesharebuddy/com.objectlounge.ridesharebuddy.activities.RS_CreateTripActivity}: java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named mPaint 10-11 15:24:33.245: E/AndroidRuntime(21427): at android.app.ActivityThread.deliverResults(ActivityThread.java:3302) 我尝试了很多选项,并相信自定义对象中有变量的东西。 关注错误日志的是java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named mPaint 。 不知道什么是mPaint。 任何人都有任何想法?

如何在servlet中使用GSON解析此JSON字符串

如何解析此JSON字符串以在servlet中创建集合对象 {“title”:[“1″,”2″],”amount”:[“1″,”3”]} 我的servlet中的内部类 public class Data { private List title; private List amount; //getters and setters } 解析json Gson gson = new Gson(); String param=request.getParameter(“info”); Data data = gson.fromJson(param, Data.class); List a=data.getTitle(); if(a==null){p(“a null”);}else{p(“a not null”);} //here a is null, prints “a null” 这是我如何创建json字符串的jsfiddle http://jsfiddle.net/testtracker/XDNLp/ 客户端表单提交function var dataString=JSON.stringify($(this).serializeObject()); $.ajax({ type: “POST”, url: URL, data: {“info”:JSON.stringify($(this).serializeObject())}, […]

使用Gson或Jackson对JSON进行反序列化时忽略空字段

我知道在将对象序列化为JSON时,有很多关于跳过具有空值的字段的问题。 我想在将JSON反序列化为对象时跳过/忽略具有空值的字段。 考虑一下课程 public class User { Long id = 42L; String name = “John”; } 和JSON字符串 {“id”:1,”name”:null} 做的时候 User user = gson.fromJson(json, User.class) 我希望user.id为’1’, user.name为’John’。 Gson或Jackson是否可以采用一般方式(没有特殊的TypeAdapter或类似的)?

来自Json的Gson反编译generics

在使用Android应用程序时,我遇到了一个问题,当我想制作一个终极通用方法来发送HTTP请求(使用loopj)并反序列化它们(使用Gson)。 正如您在使用gson.fromJson可能知道的gson.fromJson您不能这样做: gson.fromJson(responseBody, new TypeToken() {}.getType()); 要么 gson.fromJson(responseBody, new TypeToken<ArrayList>() {}.getType()) 您已经作为T传递的实际对象(或LinkedTreeMap情况下的实际对象列表)代替了LinkedTreeMap对象(或LinkedTreeMap对象列表)。 如果您仍想要反序列化generics类型对象(-s),请参阅下面的答案。 + Bonus:loopj + gson的终极通用解决方案 感谢这些post的作者和评论者: http://blog.xebia.com/2009/02/07/acessing-generic-types-at-runtime-in-java/ 如何获得通用接口的具体类型 Java Type Generic作为GSON的参数

使用GSON获取JSON密钥名称

我有一个JSON数组,其中包含如下对象: { “bjones”: { “fname”: “Betty”, “lname”: “Jones”, “password”: “ababab”, “level”: “manager” } } 我的User类有一个用户名,需要使用JSON对象的密钥。 我如何获得JSON对象的密钥? 我现在拥有的是获取所有内容并创建一个新的User对象,但保留用户名为null。 这是可以理解的,因为我的JSON对象不包含“username”:“value”的键/值对。 Gson gson = new Gson(); JsonParser p = new JsonParser(); JsonReader file = new JsonReader(new FileReader(this.filename)); JsonObject result = p.parse(file).getAsJsonObject().getAsJsonObject(“bjones”); User newUser = gson.fromJson(result, User.class); // newUser.username = null // newUser.fname = “Betty” // newUser.lname = “Jones” […]

当要解析的元素是json字符串的元素时,使用gson解析json的最简单方法是什么?

我正在使用gson将json解析为java bean。 对于我正在使用的API,大量的json结果将结果包含为json对象的第一个属性。 “gson方式”似乎是创建一个等效的包装器java对象,它具有一个目标输出类型的属性 – 但这会导致不必要的一次性类。 这样做有最佳实践方法吗? 例如要解析: {“profile”:{“username”:”nickstreet”,”first_name”:”Nick”,”last_name”:”Street”}} 我要做: public class ParseProfile extends TestCase { public void testParseProfile() { Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create(); String profileJson = “{\”profile\”:{\”username\”:\”nickstreet\”,\”first_name\”:\”Nick\”,\”last_name\”:\”Street\”}}”; ProfileContainer profileContainer = gson.fromJson(profileJson, ProfileContainer.class); Profile profile = profileContainer.getProfile(); assertEquals(“nickstreet”, profile.username); assertEquals(“Nick”, profile.firstName); assertEquals(“Street”, profile.lastName); } } public class ProfileContainer { protected Profile profile; public Profile […]

JPA2 / Hibernate – 停止延迟加载?

我遇到了一个问题,即JPA在我不想要的时候试图懒洋洋地加载我的数据。 基本上发生的事情是我正在使用服务来检索一些数据,当我将数据解析为JSON时,JSON库正在触发hibernate尝试并且懒洋洋地加载数据。 有没有办法阻止这个? 我在下面给出了一个例子。 // Web Controller method public String getEmployeesByQuery(String query) { Gson gson = new Gson(); List employees = employeeService.findEmployeesByQuery(query); // Here is where the problem is occurring – the gson.toJSON() method is (I imagine) // using my getters to format the JSON output, which is triggering hibernate to // try and lazily […]