有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javascript是否将自定义对象的映射转换为json对象?

在java中,我有一个如下所示的hashmap

Map<String, List<Employee>> = new HashMap<String, List<Employee>>();

我需要将上面的映射转换为json对象

我的尝试:-

jsonObject代替HashMap,用JsonArray代替list

 com.amazonaws.util.json.JSONObject  jsonObject = new com.amazonaws.util.json.JSONObject();
 com.amazonaws.util.json.JsonArray empList = new JsonArray();
 empList.add(empObject)
 jsonObject.put("some String", empList);

然后在请求属性中添加jsonObject

 request.setAttribute("empMap", jsonObject.toString() );

但是当我在javascript中检索它时,我得到了jsonObject的值

  {emp_10:[com.val.Emp@4b7b4bc5]}

正如您在上面看到的,我得到的是值com.val.Emp@4b7b4bc5而不是它的属性,为什么

还有没有更好的方法,可以不用使用 jsonObject代替HashMap,JsonArray代替list

在我的项目中,我已经在使用下面的库,如果需要,我可以使用任何新的库

Jettison Library (org.codehaus.jettison.json.JSONObject)
json-lib(net.sf.json.JSONObject)
apache json library (com.amazonaws.util.json.JSONObject)

共 (1) 个答案

  1. # 1 楼答案

    我认为您需要在java端有一个附加的helper函数

    public JSONObject asJSON(Employee employee) {
         ObjectMapper mapper = new ObjectMapper();
         return new JSONObject(mapper.writeValueAsString(employee));
    }
    

    并添加更新后的值asJSON(empObject),代替在下面添加empObject

     empList.add(empObject)
    

    另外,删除.toString()

    request.setAttribute("empMap", jsonObject.toString());