Tag: json

Struts 2中的Json插件问题

我有以下代码,我将实现/ getJson将返回用户对象的function,因为json和/ getJson2将返回user2作为Json对象。 @ParentPackage(“json-default”) public class JsonAction extends ActionSupport{ private User user = new User(“John”,”Smith”); private User user2 = new User(“Smith”,”John”); public String populate(){ return “populate”; } @Action(value=”/getJson”, results = { @Result(name=”success”, type=”json”)}) public String test(){ return “success”; } @Action(value=”/getJson2″, results = { @Result(name=”success”, type=”json”)}) public String test2(){ return “success”; } @JSON(name=”user”) public User getUser() […]

使用jackson删除JSON元素

我有一个特定的JSON节点,对应于导入org.codehaus.jackson.JsonNode,而不是导入org.codehaus.jackson.map.JsonNode。 [ { “givenName”: “Jim”, “formattedName”: “jimJackson”, “familyName”: null, “middleName”: “none”, “honorificPrefix”: “mr”, “honorificSuffix”: “none” }, { “givenName”: “john”, “formattedName”: “johnLasher”, “familyName”: null, “middleName”: “none”, “honorificPrefix”: “mr”, “honorificSuffix”: “none” }, { “givenName”: “carlos”, “formattedName”: “carlosAddner”, “familyName”: null, “middleName”: “none”, “honorifiPrefix”: “mr”, “honorificSuffix”: “none” }, { “givenName”: “lisa”, “formattedName”: “lisaRay”, “familyName”: null, “middleName”: “none”, “honorificPrefix”: “mrs”, […]

在Servlet中使用org.json会导致java.lang.ClassNotFoundException:org.json.JSONException

我正在尝试开发一个servlet来发送一些JSON对象,但我得到了几个例外。 我相信我需要添加一些jar文件,但我不确定哪个。 这是doGet方法以及我导入的所有内容: import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.JSONException; import org.json.JSONObject; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(“application/json”); PrintWriter out = response.getWriter(); JSONObject obj = new JSONObject(); try { obj.put(“name”, “jad”); } catch (JSONException e) { // TODO Auto-generated catch block […]

用Java解码JSON数据

我已经习惯了PHP,解码json数据只是一行代码。 在java中最简单的方法是什么?

Jackson ObjectMapper DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT

我在Jersey应用程序中使用Jackson进行JSON序列化/反序列化。 我想在我的java POJO属性中将JSON中的空字符串读取为null值。 我试图在Object Mapper上设置DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT但它不起作用。 这是下面的代码 import java.io.IOException; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.DeserializationConfig; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class TestMapper { /** * @param args */ public static void main(String[] args) { TestMapper.testJson(); } public static void testJson(){ String jsonString = “{\”name\”:\”First Name\”,\”phone\”:\”\”,\”unknown\”:\”test\”}”; ObjectMapper result = new ObjectMapper(); //result.setDeserializationConfig(result.getDeserializationConfig().with(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT)); //result.enable(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT); /*DeserializationConfig deserializeConfig = result.getDeserializationConfig(); deserializeConfig.with(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);*/ result.configure(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, […]

jackson在反序列化时抛出JsonMappingException; 要求单串构造函数?

另一个问题,但它涉及到这个问题: 用Jackson反序列化JSON – 为什么JsonMappingException“没有合适的构造函数”? 这次我得到了一个不同的错误,即Jackson反序列化器抱怨我的类ProtocolContainer中没有“单字符串构造函数/工厂方法”。 但是,如果我添加一个单字符串构造函数,如下所示: public ProtocolContainer(String json) {} exception确实消失了,但我希望在那里的ProtocolContainer都是“空”,即它的所有属性都处于初始状态,而不是根据JSON字符串填充。 这是为什么? 我很确定你不需要单一的String构造函数,如果你这样做,你就不必填充那个构造函数中的属性,对吧? =)

与json_encode(在PHP中)相当的JSP是什么?

我正在尝试将JSP servlet编码为JSON。 JSP中json_encode()在PHP中的等价物是什么?

jackson – 递归解析为Map

我正在尝试简化我的代码:我想存储键和值(所有字符串)。 我实际上使用Map来存储它。 hat way Object可以是值( String )或新节点( Map )。 我怎么能简化这段代码? 递归函数会很好。 try { JsonParser jsonParser = new JsonFactory().createJsonParser(content); jsonParser.nextToken(); while (jsonParser.nextToken() != JsonToken.END_OBJECT) { jsonParser.nextToken(); if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) { while (jsonParser.nextToken() != JsonToken.END_OBJECT) { String key = jsonParser.getCurrentName(); jsonParser.nextToken(); if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) { mData.put(key, new HashMap()); while (jsonParser.nextToken() != JsonToken.END_OBJECT) { String subkey […]

当迭代JsonObject的密钥时,它们的顺序与服务器的响应顺序不同

我从JSON字符串的服务器得到了非常大的响应。 我将它转换为JSON对象,然后获取密钥并迭代它。 问题是,当我迭代时,它的顺序与服务器的响应顺序不同。 接下来,我通过添加List所有键并对其进行排序来应用另一个方法,然后获取它的迭代器,但仍然不是我需要的(如响应中)。 代码示例如下: JSONObject jsonObject = new JSONObject(responseString); Iterator myIter = jsonObject.keys(); List sortKey = new ArrayList(); while(myIter.hasNext()){ sortKey.add(myIter.next()); } Collections.sort(sortKey);

如何反映jackson在几秒钟内的时间戳?

我有一些JSON在几秒钟内有时间戳(即Unix时间戳): {“foo”:”bar”,”timestamp”:1386280997} 要求jackson将其反序列化为具有时间戳的DateTime字段的对象,结果是1970-01-17T01:11:25.983Z ,这是纪元之后不久的一段时间,因为jackson认为它是以毫秒为单位 。 除了撕掉JSON并添加一些零之外,我怎样才能让jackson了解秒时间戳?