将JSON String转换为Java对象以便在JSP中使用

时间:2011-09-19 16:52:35

标签: java json jsp json-lib json-simple

将JSON字符串转换为Java对象是一种简单的方法或库,以便我可以轻松地引用JSP页面中的元素吗?我认为Map可以在JSP页面中用简单的点表示法引用,所以JSON - >地图对象应该有效吗?

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

4 个答案:

答案 0 :(得分:2)

使用Jackson

<强>更新

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

这是一个简单的例子。

@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"));
}

输出:

  

number:8119123912 msg:Hello world

答案 1 :(得分:1)

尝试GSON,这是tutorial

答案 2 :(得分:0)

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

答案 3 :(得分: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对象。

此示例显示Dynamically Editing a Table

希望这会有所帮助......