Tag: json

如何为jackson编写一个全能(de)序列化器

如果事先知道类型,编写自定义序列化程序非常简单。 例如。 MyType可以写一个MyTypeSerializer extends StdSerializer 。 请参阅http://wiki.fasterxml.com/JacksonHowToCustomSerializers 但是,让我们说: 我有几种类型(接口)的对象通过jackson序列化。 我事先并不知道这些对象的类型。 我无法在这些类型上添加注释。 所有这些objets都可以转换为我知道的常见类型,以便我可以获取其状态数据,键入不属于其界面的类型。 这意味着我需要编写一个应该处理所有类型的串行器(“catch-all”)并且可以决定它是否支持它(4.)。 我天真地尝试过CatchAllSerializer extends StdSerializer但它根本没有被触发。 如何编写/注册将捕获所有类型的序列化程序,可以决定它是否支持给定类型并提供序列化机制?

如何使用jackson遍历生成的json模式并将自定义属性放在json模式中

{ “type”: “object”, “properties”: { “name”: { “type”: “string” }, “id”: { “type”: “string” }, “i”: { “type”: “integer” }, “p”: { “type”: “object”, “properties”: { “name”: { “type”: “string” }, “id”: { “type”: “string” }, “i”: { “type”: “integer” }, “p1”: { “type”: “object”, “properties”: { “name”: { “type”: “string” }, “id”: { “type”: […]

将JSON值放入Hashmap

我有如下JSON值, { “emp_id”: 1017, “emp_name”: “karthik Y”, “emp_designation”: “Manager”, “department”: “JavaJson”, “salary”: 30000, “direct_reports”: [ “Nataraj G”, “Kalyan”, “Mahitha” ] } HashMap input1 = new HashMap (); input1.put(“empid”,”1017″); input1.put(“emp_name”,”karthik”); input1.put(“emp_designation”,”manager”); input1.put(“salary”,”30000″); 现在我想添加下一个数组,即direct_report作为下一个键和值(整个数组应该是一个键和值)。 有人请帮忙。

如何在java中使用Gson读取Json

我需要在Java中使用Gson库读取Json文件。 首先,我不明白Json文件是什么,我有以下内容:(抱歉缺少空格,这就是它的粘贴方式) { “initialStorage”: [ {shoeType: “red-boots”, amount: 10}, {shoeType: “green-flip-flops”, amount: 7} ], services: { time: { speed: 1000, duration: 24 }, manager: { discountSchedule: [ {shoeType: “red-boots”, amount: 1, tick: 3}, {shoeType: “green-flip-flops”, amount: 3, tick:10} ] }, factories: 3, sellers: 2, customers: [ { name: “Bruria”, wishList: [“green-flip-flops”], purchaseSchedule: [ {shoeType: “red-boots”, […]

使用Jackson将使用generics的类序列化为JSON

我有一个表示调查问卷的对象结构,我需要序列化为JSON。 结构的一个类是OpenQuestion,这个类使用带有两个参数的generics。 当使用的类型之一是Date时,问题开始,日期序列化错误,如长。 class级代码: public class OpenQuestion extends AbstractQuestion implements Serializable { private valueType value; private validationType minValue; private validationType maxValue; … } 我看到如果哈希映射总是使用Date,如何在哈希映射中序列化日期,但在这种情况下,我使用带有String,Integer或Date的类。 有什么想法解决它吗? 谢谢

使用Gson 2.3.1反序列化包含不在Java中工作的接口的Json String

我试图反序列化包含接口类型的接口和hashmaps的json字符串以及使用Gson将包含接口类型的列表放入java对象中。 但我得到了 java.lang.RuntimeException:无法为com.abc.Dummy接口调用no-args构造函数。 使用Gson为此类型注册InstanceCreator可以解决此问题。 我试图通过实例化构造函数来为实例创建者注册类型适配器,以实现具有虚拟值的类,但是虚拟值不会被反序列化的值覆盖? Dummy是接口,SubClassDummy是实现类。 public class DummyInstanceCreator implements InstanceCreator{ @Override public SubClassDummy createInstance(Type type) { return new SubClassDummy(“”, 2.5, “abc”); } } String data = // some json string with interfaces and List, hashmap gsonBuilder.registerTypeAdapter(Dummy.class, new DummyInstanceCreator()); SubClassDummy context = gson.fromJson(data, SubClassDummy.class); 任何人都可以帮助解决这个问题吗? 我无法修改我试图反序列化的java对象。 它是第三方课程 。 因此无法添加任何注释或对该类进行任何修改。 如何让gson用反序列化值覆盖虚拟值? 我甚至无法对java对象如何序列化为json字符串进行任何更改。 我只是将json字符串用于将其反序列化为特定的java对象。

循环嵌套ArrayList以使用gson显示来自JSON的值

问:我的json有嵌套元素forms的值,正如你在下面看到的,我在数组中有来自服务器的值,而且里面有第二个数组。 现在我使用gson来解析这个值,每一件事都在起作用 – 直到”orderDetailList”但是当我尝试循环抛出“subItemPart”时,我无法检索subItemPart对象的值。 源代码: 在文件myFile.json中输入JSON字符串(使用JSONLintvalidation:有效的JSON) { “customerId”: “CUST01”, “orderId”: “101010”, “orderTotal”: 99.99, “orderDetailList”: [ { “lineId”: “1”, “itemNumber”: “ABC”, “quantity”: 9, “price”: 10.0, “subItemPart”:[{“itemName”:”RAM”, “quantity”: 5}, {“itemName”:”LED”, “quantity”: 3}] }, { “lineId”: “2”, “itemNumber”: “XYZ”, “quantity”: 1, “price”: 9.99 , “subItemPart”:[{“itemName”:”RAM”, “quantity”: 5}, {“itemName”:”LED”, “quantity”: 3}] } ] } 用于将JSON字符串转换为Java对象的Java源代码 package com.as400samplecode; import java.io.BufferedReader; […]

将JSON字符串转换为Java对象或HashMap

我正在写一个Android应用程序。 我想在意图/活动中传递一些数据,我觉得在这一点上,往返JSON的转换可能是一种更优化的方式。 我能够使用JSONObject支持成功地将java hashmap转换为json字符串。 但是我需要将此JSON字符串转换回java对象或hashmap。 什么是最好的方法。 是否可以改变是值得做的事情; 如果我有简单的5场对象? 在意图之间传输数据的其他方法有哪些。 干杯

无法将JsonNull转换为JsonObject

我想将一个primitve属性从一个JsonObject复制到另一个 JsonObject propertyToBeCopied = source.getAsJsonObject(propertyName); 但我总是遇到这个例外: com.google.gson.JsonNull cannot be cast to com.google.gson.JsonObject 根据文档,应该可以进行演员表,或者我错了吗?

Java HttpURLConnection返回JSON

我正在尝试发出一个返回json响应的http get请求。 我需要将json响应中的一些值存储在我的会话中。 我有这个: public String getSessionKey(){ BufferedReader rd = null; StringBuilder sb = null; String line = null; try { URL url = new URL(//url here); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(“GET”); connection.connect(); rd = new BufferedReader(new InputStreamReader(connection.getInputStream())); sb = new StringBuilder(); while ((line = rd.readLine()) != null) { sb.append(line + ‘\n’); } return […]