Tag: json

在SpringMVC中使用@ResponseBody返回JsonObject

我在SpringMVC项目中使用新的Java API(JSR 353)来实现JSON。 我们的想法是生成一些Json数据并将其返回给客户端。 控制器我看起来有点像这样: @RequestMapping(“/test”) @ResponseBody public JsonObject test() { JsonObject result = Json.createObjectBuilder() .add(“name”, “Dade”) .add(“age”, 23) .add(“married”, false) .build(); return result; } 当我访问它时,而不是获得JSON的预期表示,我得到这些: {“name”:{“chars”:”Dade”,”string”:”Dade”,”valueType”:”STRING”},”age”:{“valueType”:”NUMBER”,”integral”:true},”married”:{“valueType”:”FALSE”}} 为什么是这样? 到底是怎么回事? 如何让它正确返回预期的JSON?

在servlet中读取JSON字符串

我将jQuery AJAX POST发布到servlet,数据采用JSON String的forms。 它成功发布但在Servlet端我需要将这些key-val对读入Session对象并存储它们。 我尝试使用JSONObject类,但我无法得到它。 下面是代码片段 $(function(){ $.ajax( { data: mydata, //mydata={“name”:”abc”,”age”:”21″} method:POST, url: ../MyServlet, success: function(response){alert(response); } }); 在Servlet方面 public doPost(HTTPServletRequest req, HTTPServletResponse res) { HTTPSession session = new Session(false); JSONObject jObj = new JSONObject(); JSONObject newObj = jObj.getJSONObject(request.getParameter(“mydata”)); Enumeration eNames = newObj.keys(); //gets all the keys while(eNames.hasNextElement()) { // Here I need […]

预计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 […]

JSON到XML转换的Java实现

是否有现有的JAR可以从JSON转换为XML?

让Jackson将单个JSON对象解释为具有一个元素的数组

有没有办法让jackson将单个JSON对象解释为具有一个元素的数组,反之亦然? 例如,我有两种略有不同的JSON格式,我需要两者都映射到同一个Java对象: 格式A (带有一个元素的JSON数组): points : [ { date : 2013-05-11 value : 123 }] 格式B (JSON对象,是的,我知道它看起来“错误”,但它是我给的): points : { date : 2013-05-11 value : 123 } 目标Java对象,以上两者都应转换为: //Data.java public List points; //other members omitted //Point.java class Point { public String date; public int value; } 目前,只有A才能正确解析数据。 我想避免直接篡改JSON本身。 jackson是否有一些配置可以篡改以使其接受B ?

如何在Java中将jsonString转换为JSONObject

我有一个名为jsonString String变量: {“phonetype”:”N95″,”cat”:”WP”} 现在我想将其转换为JSON对象。 我在Google上搜索得更多,但没有得到任何预期的答案……

为什么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中序列化它? 在此先感谢您的帮助。

Java JSON序列化 – 最佳实践

我需要为某些对象实现JSON序列化,并且在与generics集合集成时遇到了问题。 所有可序列化的类都实现了这个接口(JSONObject来自这个库): interface JSONSerializable{ public JSONObject dump() throws JSONException //serializes object public void load(JSONObject obj) throws JSONException //deserializes object } 基于java.util.list的我的集合代码看起来或多或少是这样的: class AwesomeList implements JSONSerializable{ private LinkedList items = new LinkedList(); … … public JSONObject dump() throws JSONException { JSONObject result = new JSONObject(); JSONArray a = new JSONArray(); for(T i : items){ a.put(i.dump()); } […]

如何使用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”: […]