Tag: json

使用java进行JSON模式validation

我正在为一个返回JSON对象的java webapp编写一些验收测试。 我想validationJSON是否返回了针对模式的validation。 任何人都可以建议任何工具吗?

JSON格式化(通过jQuery AJAX发送JSON发布到Java / Wicket服务器)

我正在使用jQuery将JSON发布到Java服务器,但我认为我的JSON一定是错的。 这是我的数据示例以及我如何发送它: var lookup = { ‘name’: name, ‘description’: description, ‘items’: [{ ‘name’: itemName, ‘value’: itemValue }] } $.ajax({ type: ‘post’, data: lookup, dataType: ‘json’ }); 我正在使用Wicket的AbstractAjaxBehavior来接收数据,并希望得到一个我可以解析的JSON字符串。 当我得到传递参数的Map时,键集如下所示: items[0][name], description, name, items[0][value], 显然,我可以轻松获取名称和描述的值,但是我的项目数组的关键字搞砸了。 我确信这很简单,但我似乎一直在解决这个问题。 有什么建议么? 谢谢!

反序列化json时跳过根元素

我应该如何反序列化以下JSON以跳过根元素并解析此JSON的内部部分。 我想避免创建额外的第3类Root , MapWrapper包含MapWrapper字段。 { “root”: { “language”: “en”, “map”: { “k1”: { “name”: “n1”, }, “k2”: { “name”: “n2”, } } } } 所以我想只有这两个类: class MapWrapper { private String language; private Map map; } class MyMapEntry { String name; }

如何将JSON反序列化为平面,类似Map的结构?

请记住,JSON结构之前是未知的,即它完全是任意的,我们只知道它是JSON格式。 例如, 以下JSON { “Port”: { “@alias”: “defaultHttp”, “Enabled”: “true”, “Number”: “10092”, “Protocol”: “http”, “KeepAliveTimeout”: “20000”, “ThreadPool”: { “@enabled”: “false”, “Max”: “150”, “ThreadPriority”: “5” }, “ExtendedProperties”: { “Property”: [ { “@name”: “connectionTimeout”, “$”: “20000” } ] } } } 应该反序列化为具有键的类似Map的结构(为了简洁,不包括以上所有内容): port[0].alias port[0].enabled port[0].extendedProperties.connectionTimeout port[0].threadPool.max 我目前正在调查jackson,所以我们有: TypeReference<HashMap> typeRef = new TypeReference<HashMap>() {}; Map o = objectMapper.readValue(jsonString, […]

从json到java.util.Map编码/解码的库?

有谁知道一个java库可以轻松地将java Maps编码为json对象,反过来呢? UPDATE 由于原因无法解释(我有时讨厌)我不能在我的环境中使用generics。 我想要做的是拥有这样的东西: Map a = new HashMap(); a.put( “name”, “Oscar” ); Map b = new HashMap(); b.put( “name”, “MyBoss”); a.put( “boss”, b ) ; List list = new ArrayList(); list.add( a ); list.add( b ); String json = toJson( list ); // and create the json: /* [ { “name”:”Oscar”, “boss”:{ “name”:”MyBoss” […]

Spring MVC 4:“application / json”内容类型未正确设置

我有一个使用以下注释映射的控制器: @RequestMapping(value = “/json”, method = RequestMethod.GET, produces = “application/json”) @ResponseBody public String bar() { return “{\”test\”: \”jsonResponseExample\”}”; } 我返回一个有效的JSON字符串,但是,当我在浏览器中查看Chrome Dev Tools上的响应时,内容类型不是application/json而是纯text/html 。 为什么没有设置内容类型? 我的web.xml : Spring MVC Web Application dispatcher org.springframework.web.servlet.DispatcherServlet 1 default *.js default *.css dispatcher / contextConfigLocation /WEB-INF/dispatcher-servlet.xml org.springframework.web.context.ContextLoaderListener 我的dispatcher-servlet.xml : 使用WildFly 8.1作为我的应用服务器。

如何有效地将org.json.JSONObject映射到POJO?

以前一定要问过这个问题,但我找不到。 我正在使用第三方库来检索JSON格式的数据。 该库以org.json.JSONObject向我提供数据。 我想将此JSONObject映射到POJO(Plain Old Java Object)以获得更简单的访问/代码。 对于映射,我目前以这种方式使用Jackson库中的ObjectMapper : JSONObject jsonObject = //… ObjectMapper mapper = new ObjectMapper(); MyPojoClass myPojo = mapper.readValue(jsonObject.toString(), MyPojoClass.class); 根据我的理解,上面的代码可以得到显着优化,因为目前已经解析的JSONObject的数据再次被送入带有JSONObject.toString()方法的序列化 – 反序列化链,然后送到ObjectMapper 。 我想避免这两个转换( toString()和解析)。 有没有办法使用JSONObject将其数据直接映射到POJO?

使用GSON序列化java对象

我想将此对象序列化为JSON String public class Person { public String id; public String name; public Person parent; } 并获得这样的结果: {id: 1, name: “Joe”, parent: 2} 我试着用 Person p = new Person(1, “Joe”, new Person(2, “Mike”)); Gson gson = new GsonBuilder() .registerTypeAdapter(Persona.class, new PersonSerializer()).create(); String str = gson.toJson(p); 但不是那样,我得到了: “1” PersonSerializer: public class PersonSerializer implements JsonSerializer { public […]

期望一个对象数组但在对象中得到一个对象

在我正在进行的项目中,我遇到了一个角度exception: Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object? Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object? 在我寻找解决方案的搜索中,我直接将Web服务的URL输入到我的浏览器中,令人惊讶的是我没有按预期收到数组。 Web服务类: @Path(“/menu”) public class MenuHandler { @GET @Path(“/cls”) @Produces(MediaType.APPLICATION_JSON) public List getCLSs() { Clazz clazz = new Clazz(); Clazz.setFoo(“foo”); Clazz.setBar(“bar”); ArrayList […]

使用android volley库发送JSONArray POST请求

我想发送和接收带有齐射的Jsonarrays。 现在我可以收到一个数组,但没关系,但我不知道如何发送请求(例如:使用post方法)。 JsonArrayRequest arrayReq = new JsonArrayRequest(URL, new Listener() { }