将字符串输入JSON时遇到问题

时间:2018-06-30 19:44:25

标签: java arrays json string arraylist

我的servlet从某文章(priceidcountname)接收/加载多个参数。

虽然它们被保存在会话中以用于其他目的,但我想将它们显示在购物车中。

所以我的想法是像这样将所有值放入jso n

{"id":1, "prductName":"article1"}

但是我的json总是空着。

我有两种方法:

String prname = request.getParameter("name");
String anz = String.valueOf(session.getAttribute("Anzahl"));
String prid = request.getParameter("id");
String price = request.getParameter("price");

这些是我的参数:

第一次尝试:

class ToJson{

        String prname1 = String.valueOf(session.getAttribute("prname"));
        String anz1 = String.valueOf(session.getAttribute("Anzahl"));
        String prid1 = String.valueOf(session.getAttribute("id"));
        String price1 = String.valueOf(session.getAttribute("price"));
    }

    ToJson obj = new ToJson();
    Jsonb jsonb = JsonbBuilder.create();
    String jsn1 = jsonb.toJson(obj);

最后显示:{}

第二次尝试:

ArrayList<String> ar = new ArrayList<String>();
    ar.add(prname);
    ar.add(price);
    ar.add(prid);
    ar.add(anz);
ToJson obj = new ToJson();
    Jsonb jsonb = JsonbBuilder.create();
    String jsn = jsonb.toJson(ar);

最后显示:["P1neu","25","1","145"]

它不是我想要的格式,并且我也不知道如何在此处访问单独的值,我尝试了jsn[1],但没有用。

可以帮我吗?

1 个答案:

答案 0 :(得分:0)

第一个问题,why JSON object is printing empty

  

您在getters & setters类中缺少ToJSON,JSON Builder / Parser无法访问属性/字段,这就是为什么将其打印为空对象的原因。

对于第二个问题,how do I access JSON properties
JSON表示法本身就是字符串表示法,您不能将部分字符串读为jsn[1]

  

要读取JSON对象属性,您可以使用可用的任何首选开放源代码解析器库(例如Jacksons,Gson等)将其转换为POJO,然后使用标准的Java getter / setters访问POJO属性。