【问题标题】:how to add a list of string into json object in jsp?如何在jsp中将字符串列表添加到json对象中?
【发布时间】:2015-03-11 18:42:38
【问题描述】:

我在 jsp 中编写了一个程序来将值插入数据库,现在我想从数据库中检索这些值并以 json 格式显示。 我有姓名、性别和年龄参数,我在一个列表中得到它,我想将它显示为 用户{ 1:{姓名:abc,性别:男,年龄:21},2:{姓名:xyz,性别:女,年龄:25},...... }

我的 Jsp 代码

<%
PrintWriter outt = response.getWriter();
JSONObject obj = new JSONObject();
Insert_UserDetails details = new Insert_UserDetails();
request.setCharacterEncoding("utf8");
response.setContentType("application/json");
List<String> list = details.getAllUsers();
JSONArray jArray = new JSONArray();
for (int i = 0; i < list.size(); i++) {
    JSONObject formDetailsJson = new JSONObject();
    formDetailsJson.put("result", list.get(i));
    jArray.add(formDetailsJson);
}

obj.put("form_details", jArray);
out.print(obj.toString());
%>

我得到的输出是:

{"form_details":[{"result":"arjun"},{"result":"male"},{"result":"21"},  
{"result":"ravi"},{"result":"male"},{"result":"30"},{"result":"pushpa"}, 
{"result":"female"},{"result":"57"},{"result":"usha"},{"result":"female"},
{"result":"60"},{"result":"bharat"},{"result":"male"},{"result":"30"},
{"result":"ramesh"},{"result":"male"},{"result":"29"},{"result":"ramesh"},
{"result":"male"},{"result":"29"}]}

我是 json 新手,所以需要一些指导 谢谢你

【问题讨论】:

    标签: json jsp


    【解决方案1】:

    '在 jsp 上编写 java 代码是一种不好的做法'。虽然可以写。正如我所看到的,您的列表包含字符串格式的所有详细信息,并且每个第三个索引间隔都有一个新的记录详细信息要做,因此您可以像这样编写。

       <%
     PrintWriter outt = response.getWriter();
    JSONObject obj = new JSONObject();
    JSONObject finalJSON = new JSONObject();
    
    Insert_UserDetails details = new Insert_UserDetails();
    request.setCharacterEncoding("utf8");
    response.setContentType("application/json");
    List<String> list = details.getAllUsers();
    int recordCounter=1;
    JSONArray jArray = new JSONArray();
    for (int i = 0; i < list.size(); i++) {
        JSONObject formDetailsJson = new JSONObject();
    
        formDetailsJson.put("name", list.get(i));
        formDetailsJson.put("gender", list.get(++i));
        formDetailsJson.put("age", list.get(++i));
    
        finalJSON.put(recordCounter,formDetailsJson);
    
    
        recordCounter++;
    }
    
    
    out.print(finalJSON.toString());
    %>
    

    上面的代码将像您在问题中提到的那样输出。确保您的列表包含 3 的倍数的记录,否则您可能会收到 IndexOutOfBound 异常。

    【讨论】:

    • 谢谢先生,首先它给了我 indexoutofbound 异常,由于 list.get(i) ,但后来我做了 list.get(++i) 并且它起作用了
    猜你喜欢
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2022-06-12
    • 2013-03-21
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多