gpt4 book ai didi

java - 如何将 JSON 数据插入数据库

转载 作者:行者123 更新时间:2023-12-01 19:38:26 24 4
gpt4 key购买 nike

通过ajax从我的UI中我得到了一个JSON数据,我试图将其插入到我的数据库中,我不知道如何做到这一点,我知道如何使用 prepared statements 在数据库中插入一些内容但在 JSON 情况下我完全困惑

这是我在 doPost 中获取的 JSON

{"ImageData":[{"Counter":"Counter A","Name":"CountA1.jpg","IsActive":"Y"},{"Counter":"Counter A","Name":"CountA2.jpg","IsActive":"Y"}]}

servlet 代码 -->

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

Scanner scanner = new Scanner(request.getInputStream());
String imageData = scanner.nextLine();
System.out.println(imageData);

}

现在我想将其存储在我的数据库中,例如 This

我需要解析这个 JSON,我该怎么做 ps.setInt(index, 0); ,我不知道

编辑/更新

作为@Anjana Senanayake的回答,我正在这样做

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

Scanner scanner = new Scanner(request.getInputStream());
String imageData = scanner.nextLine();
System.out.println(imageData);
JSONObject jsonObj = new JSONObject(imageData);
JSONArray jsonArray = jsonObj.getJSONArray("ImageData");

JSONObject innerObj = new JSONObject(jsonArray); // this one is throwing error
// eror is `The type of the expression must be an array type but it resolved to JSONArray`
String counter = innerObj.getString("Counter");
String name = innerObj.getString("Name");
String isActive = innerObj.getString("IsActive");

System.out.println(counter);

}

但它在 JSONObject innerObj = new JSONObject(jsonArray[0]); 处抛出错误错误是The type of the expression must be an array type but it resolved to JSONArray

最佳答案

这里有多种选择。这取决于您想要实现什么:)

快速而肮脏

将其保存为字符串。您必须使用 String 对象创建一个新类,然后将 JSON 数据放入该对象中并保存。

我意识到这是行不通的,因为它不是你真正想要的:)

更好的方法

创建一个包含所有字段的新类。

// File: ImageData.java
public class ImageData {
private String counter;
private String name;
private String isActiveJpg;

// getters and setters
}

// File: Data.java
public class Data {
private List<ImageData> imageDataList;

// getters and setters
}

准备好这些类后,您就可以使用 JacksonGSON图书馆。请看一下 Jackson here 的使用示例和 GSON serializationdeserialization .

旁注

我建议重新考虑设计本身。例如。字段的命名和实体的逻辑非常具有误导性(例如 isActiveJpg 之类的东西。它应该是一个 Set 并且应该有一个更好的命名,例如 isJpg 或类似的东西)。

关于java - 如何将 JSON 数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56539582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com