gpt4 book ai didi

java - 带有中文字符的 JSON 在 java 中处理为 XML for RDB

转载 作者:数据小太阳 更新时间:2023-10-29 02:45:23 25 4
gpt4 key购买 nike

我在中文微博平台上调用 RESTful web 服务,并得到一个 JSON 文件作为返回,如下所示:

[{
"id": 2098220080,
"idstr": "2098220080",
"class": 1,
"screen_name": "王理巍", .....}]

所以它是一个包含 100 个内部对象的数组。我的目标是将这些数据导入关系数据库 (SAP HANA)。由于我只能导入 XML 或 csv 格式的文件,我认为最好的方法是使用一些小型 Java 应用程序将 JSON 解析为 XML。我已经尝试过不同的 JSON 解析库,但数组似乎有问题。所以我选择了 Apache json.org 库并通过 InputStream 调用网络服务。

public static void main(String[] args) throws IOException {

String date, userName = null, text, gender, city, location, province;
int userId = 0, statusId;
URL url = null;

try {
url = new URL("https://api.weibo.com/2/suggestions/users/hot.json?client_id=1637521539&access_token=2.00xusAWD0YuxsZ10f9689fa7sIoHJC&category=auto");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//Call URL as InputStream
try (InputStream is = url.openStream();
JsonReader rdr = Json.createReader(is)) {

JsonArray results = rdr.readArray();

//System.out.println(results.toString());

JsonObject[] objects = new JsonObject[100];
JsonObject o1 = results.getJsonObject(0);
//System.out.println(o1);

//Read each element
try {
userId = o1.getInt("id");
userName = o1.getString("name");
province = o1.getString("province");
city = o1.getString("city");
location = o1.getString("location");
gender = o1.getString("gender");
date = o1.getString("created_at");
statusId = o1.getInt("id");
text = o1.getString("text");
} catch (NullPointerException npe) {
System.out.println("No value");
}

//Build XML
String xmlString = XML.toString(userId,"id");
xmlString = XML.toString(userName, "name");

在这个片段中,我只读取了一个对象用于测试目的,没有任何自动化。基本上我现在在这里处理 2 个问题。

第一:包含中文简体字的元素显示为???第二:如何将多个元素附加到 XML 字符串?

非常感谢您就我的问题提出的提示,以及一些关于可能更好的解决方案的一般想法。

最佳答案

好的问题解决了。

如果您感兴趣:要访问一个对象中嵌套的“status”元素,只需使用

JsonObject status = o1.getJsonObject("status");

为了附加几个对象,我使用了 StringBuilder 方法。

关于java - 带有中文字符的 JSON 在 java 中处理为 XML for RDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377393/

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