将 JSON 字符串转换为 Java 对象,以便于在 JSP 中使用

发布于 2024-12-05 12:03:46 字数 300 浏览 1 评论 0原文

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

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

Is their an easy way or library to convert a JSON String to a Java object such that I can easily reference the elements in a JSP page? I think Map's can be referenced with simple dot notation in JSP pages, so JSON -> Map object should work?

UPDATE: Thank you for all the JSON Java libraries. In particular, I'm looking for a library that makes it easy for consumption in JSP pages. That means either the Java object created has appropriate getter methods corresponding to names of JSON nodes (is this possible?) or there's some other mechanism which makes it easy like the Map object.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

咿呀咿呀哟 2024-12-12 12:03:46

使用杰克逊

更新:

如果您有任意 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 消息:Hello world

Use Jackson.

Updated:

If you have an arbitrary json string Jackson can return a map object to access the properties values.

Here a simple example.

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

Output:

number:8119123912 msg:Hello world

疯了 2024-12-12 12:03:46

尝试 GSON,这里有一个教程

Try GSON, here is a tutorial.

绮烟 2024-12-12 12:03:46

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

This library should do what you want: http://www.json.org/java/

野鹿林 2024-12-12 12:03:46

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对象。

此示例显示动态编辑表格

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

DWR can be used for this purpose DWR - Easy Ajax for JAVA .

Lets consider this java class.

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

In javascript JSON object

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

This is the call to java method from javascript function.

   EmployeeUtil.getRow(employee,dwrData);

In getRow() of EmployeeUtil class, return type of method will be Employee.

   Employee getRow();

So using the setters of Employee set the data.

dwrData is the callback function.

   function dwrData(data) {
                            employee=data;                   
                          }

The data returned which is Employee bean will be in callback function.

Just initialize this in javascript JSON object.

Now the JSON object can be parsed and displayed in jsp.

This example shows Dynamically Editing a Table

Hope this helps ....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文