java - 在servlet中解析Json

标签 java arrays object

我在java中有这个数组列表

[ {"pname":"7", "qty":"222"}, 
  {"pname":"8", "qty":"5"}, 
  {"pname":"9", "qty":"60"} ]

我可以访问第一个索引,即对象,如何访问第一个对象内的第一个元素,即java语法中的“pname”键。请给我示例代码。谢谢。

我尝试过:

mylist.get(0)

但它只给了我第一个对象。我不知道如何访问对象内的第一个索引。 这是我从获取数据到将其解析为 json 数组并转换为数组列表的整个代码

        String data = request.getParameter("data");
        JSONArray jsonArray = new JSONArray(data);

        ArrayList<String> mylist = new ArrayList<String>();
        JSONArray this_is_jsonArray = (JSONArray)jsonArray; 
        if (jsonArray == null) { 
            System.out.println("json is empty");
        }
        else
        {
           int length = this_is_jsonArray.length();
           for (int i=0;i<length;i++){ 
               mylist.add(this_is_jsonArray.get(i).toString());
           }    
        }
        output.append(mylist);

基本上,我正在尝试在 JavaScript 中执行与此 mylist[0].pname 类似的输出。总而言之,预期的输出是将这些 pname 和 qty 保存到一个变量中,以便我能够将每个值发送到数据库

最佳答案

为了写出正确的答案,您需要非常清楚您拥有的输入和输出以及您期望的输出。

我不明白为什么你想创建一个并行数据结构而不是使用解析的 JSON,但从我在评论中读到的内容来看,我认为你需要更改 ArrayList 内容的结构才能获得你的结果想要实现。

String data = "[ {\"pname\":\"7\", \"qty\":\"222\"}, {\"pname\":\"8\", \"qty\":\"5\"}, {\"pname\":\"9\", \"qty\":\"60\"} ]" ;
HashMap<String, String> item = new HashMap<String, String>();
JSONArray jsonArray = new JSONArray(data);
ArrayList<HashMap> mylist = new ArrayList<HashMap>();
if (jsonArray == null) {
    System.out.println("json is empty");
} else {
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        item.put("pname", jsonObject.getString("pname"));
        item.put("qty", jsonObject.getString("qty"));
        mylist.add(item);
    }
}
System.out.println(mylist);

关于java - 在servlet中解析Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57388786/

相关文章:

java - JVM版本冲突导致Eclipse/Jetty无法正常运行

java - 如果找不到元素,我该如何继续我的脚本?

java - 为什么类型不兼容?

javascript - 在javascript中,测试深度嵌套在对象图中的属性?

javascript - 提取 2 个属性值的列表

java - Apache 飞艇/ Spark : Why can't I access a remote DB with this code sample

java - 安卓工作室 : Execution failed for task ':app:transformClassesWithDexBuilderForDebug'

c - 尝试使用 "Readers Writer Lock"时的竞争条件

python - 如何初始化先验未知数量的列表

带图像的 Javascript 时钟