gpt4 book ai didi

java - XML 文件转 Json (org.json)

转载 作者:行者123 更新时间:2023-12-01 11:07:41 24 4
gpt4 key购买 nike

我正在尝试将 XML 转换为 Json。我在下面找到了这个例子,并且几乎按照我想要的方式工作。但是,有没有办法从我的计算机加载 XML 文件而不是直接从代码加载?我找到了一些替代方案,但如果可能的话我想坚持使用 org.json...

public static String TEST_XML_STRING = ("C:\\results\\results.xml");或者类似的东西?

import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;

public class Main {


public static int PRETTY_PRINT_INDENT_FACTOR = 4;
public static String TEST_XML_STRING =

"<breakfast_menu>\n"+
"<food>\n"+
"<name>Belgian Waffles</name>\n"+
"<price>$5.95</price>\n"+
"<description>\n"+
"Two of our famous Belgian Waffles with plenty of real maple syrup\n"+
"</description>\n"+
"<calories>650</calories>\n"+
"</food>\n"+
"<food>\n"+
"<name>Strawberry Belgian Waffles</name>\n"+
"<price>$7.95</price>\n"+
"<description>\n"+
"Light Belgian waffles covered with strawberries and whipped cream\n"+
"</description>\n"+
"<calories>900</calories>\n"+
"</food>\n"+
"</breakfast_menu>";


public static void main(String[] args) {
try {JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);

String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
System.out.println(jsonPrettyPrintString);

} catch (JSONException e) {
System.out.println(e.toString());
}


}
}

我已经了解了这一点,但在第 20 行给了我错误

线程“main”java.lang.Error中出现异常: Unresolved 编译问题:位于Main.main(Main.java:20)

import java.io.File;
import java.io.FileInputStream;

import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;

public class Main {

File file = new File("teste.xml");
FileInputStream fin = new FileInputStream(file);
byte[] xmlData = new byte[(int) file.length()];
fin.read(xmlData);
fin.close();

public static int PRETTY_PRINT_INDENT_FACTOR = 4;
public static String TEST_XML_STRING = new String(xmlData, "UTF-8");


public static void main(String[] args) {
try {JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);

String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
System.out.println(jsonPrettyPrintString);

} catch (JSONException e) {
System.out.println(e.toString());
}


}
}

最佳答案

您可以使用FileInputStream将文件内容获取到byte数组中,并将其传递给String构造函数以从文件中读取内容。

File file = new File("yourdata.xml");
FileInputStream fin = new FileInputStream(file);
byte[] xmlData = new byte[(int) file.length()];
fin.read(xmlData);
fin.close();
String TEST_XML_STRING = new String(xmlData, "UTF-8");

注意:另一种选择是打开 BufferedReader 并循环调用 readLine()

更新:请使用以下代码,过程代码必须位于方法/构造函数/初始化程序 block 内。它们不能位于类 block 内。

public class Main {
public static int PRETTY_PRINT_INDENT_FACTOR = 4;
public static String TEST_XML_STRING = null;

public static void main(String[] args) throws IOException {
File file = new File("teste.xml");
FileInputStream fin = new FileInputStream(file);
byte[] xmlData = new byte[(int) file.length()];
fin.read(xmlData);
fin.close();
TEST_XML_STRING = new String(xmlData, "UTF-8");

try {
JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);

String jsonPrettyPrintString = xmlJSONObj
.toString(PRETTY_PRINT_INDENT_FACTOR);
System.out.println(jsonPrettyPrintString);

} catch (JSONException e) {
System.out.println(e.toString());
}

}
}

关于java - XML 文件转 Json (org.json),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32768911/

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