java - 如何在restful中将map转换为json

标签 java json spring rest jersey

在我的项目中,我动态生成 json 并将其放入 Map<String,Student>() 中 注意: key 是动态的 所以我的回复打印如下:

"entry": [
        {
          "key": "student1",
          "value": {
            "name":selva
          }
        },
        {
          "key": "student2",
          "value": {
           "name":"kumar"
          }
        }
       ]

但我预期的回应是:

[
"student1" : {
"name":"kumar"
},
"student2" : {
"name":"selva"
}
]

**My keys are dynamic here...**

如何在 Jersey 上达到预期的效果。 pom.xml

<!-- Json dependency -->
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
        </dependency>
<dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
        </dependency>

任何帮助将不胜感激!!!!

最佳答案

/**
     * JSONObjects can be built from a Map<String, Object>. 
     * In this test all of the map entries are valid JSON types.
     */
    @Test
    public void jsonObjectByMap() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("trueKey", new Boolean(true));
        map.put("falseKey", new Boolean(false));
        map.put("stringKey", "hello world!");
        map.put("escapeStringKey", "h\be\tllo w\u1234orld!");
        map.put("intKey", new Long(42));
        map.put("doubleKey", new Double(-23.45e67));
        JSONObject jsonObject = new JSONObject(map);

        // validate JSON
        Object doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonObject.toString());
        assertTrue("expected 6 top level items", ((Map<?,?>)(JsonPath.read(doc, "$"))).size() == 6);
        assertTrue("expected \"trueKey\":true", Boolean.TRUE.equals(jsonObject.query("/trueKey")));
        assertTrue("expected \"falseKey\":false", Boolean.FALSE.equals(jsonObject.query("/falseKey")));
        assertTrue("expected \"stringKey\":\"hello world!\"", "hello world!".equals(jsonObject.query("/stringKey")));
        assertTrue("expected \"escapeStringKey\":\"h\be\tllo w\u1234orld!\"", "h\be\tllo w\u1234orld!".equals(jsonObject.query("/escapeStringKey")));
        assertTrue("expected \"doubleKey\":-23.45e67", Double.valueOf("-23.45e67").equals(jsonObject.query("/doubleKey")));
}

关于java - 如何在restful中将map转换为json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37855500/

相关文章:

java - JT400 错误 CPF3CF1 在 QTOCNETSTS.SRVPGM 中调用 API QtocRtvTCPA

c# - 在 C# 中将 HTTP Accept 和 Content-Type header 都设置为 "application/xml"

java - 通过REST API处理ManyToOne实体集合的更新

java - 如何在 spring jpa 中组合 4 个表(查询)

java - 什么是对多个字段使用 findBy 并对所有字段使用 Containing 子句的 Spring Data JPA 方法

java - hibernate在maven项目中找不到mysql类

java - 需要从 jvm 中删除 fusionreactor 条目

java - Groovy 能做 Java 能做的一切吗?

java - 解析json文件丢失的数据结构 - JAVA

javascript - Node : xml2js returns broken data structure because it inserted escape character