1

它们是一种将 JSON 字符串转换为 Java 对象的简单方法或库,以便我可以轻松地引用 JSP 页面中的元素吗?我认为Map's 可以在 JSP 页面中用简单的点符号来引用,所以 JSON -> Map 对象应该可以工作吗?

更新:感谢所有 JSON Java 库。特别是,我正在寻找一个能够在 JSP 页面中轻松使用的库。这意味着创建的 Java 对象具有与 JSON 节点名称相对应的适当 getter 方法(这可能吗?),或者有一些其他机制可以像 Map 对象一样轻松实现。

4

4 回答 4

2

使用杰克逊

更新:

如果你有一个任意的 json 字符串,Jackson 可以返回一个地图对象来访问属性值。

这里举一个简单的例子。

@Test
public void testJsonMap() throws JsonParseException, JsonMappingException, IOException {
    String json = "{\"number\":\"8119123912\",\"msg\":\"Hello world\"}";
    ObjectMapper mapper = new ObjectMapper();
    Map<String, Object> map = mapper.readValue(json, new TypeReference<Map<String,Object>>() { });
    System.out.println("number:" + map.get("number") + " msg:" + map.get("msg"));
}

输出:

号码:8119123912 消息:你好世界

于 2011-09-19T17:11:04.270 回答
1

试试 GSON,这里有一个教程

于 2011-09-19T16:56:04.270 回答
0

这个库应该做你想做的事:http: //www.json.org/java/

于 2011-09-19T16:54:39.420 回答
0

DWR 可用于此目的DWR-Easy Ajax for JAVA

让我们考虑这个java类。

   class Employee
   {
      int id;
      String eName;
       // setters and getters                
   }   

在 javascript JSON 对象中

   var employee = {
                   id   : null,
                   name : null
                  };

这是从 javascript 函数调用 java 方法。

   EmployeeUtil.getRow(employee,dwrData);

在 EmployeeUtil 类的 getRow() 中,方法的返回类型将是 Employee。

   Employee getRow();

所以使用 Employee 的 setter 来设置数据。

dwrData 是回调函数。

   function dwrData(data) {
                            employee=data;                   
                          }

返回的 Employee bean 数据将在回调函数中。

只需在 javascript JSON 对象中初始化它。

现在可以在jsp中解析并显示JSON对象。

此示例显示动态编辑表

希望这可以帮助 ....

于 2011-09-19T17:50:19.617 回答