将包含 JSON 的文件加载到 JSONObject 中的最简单方法是什么。
目前我正在使用 json-lib。
这是我所拥有的,但它会引发异常:
XMLSerializer xml = new XMLSerializer();
JSON json = xml.readFromFile("samples/sample7.json”); //line 507
System.out.println(json.toString(2));
输出是:
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at net.sf.json.xml.XMLSerializer.readFromStream(XMLSerializer.java:386)
at net.sf.json.xml.XMLSerializer.readFromFile(XMLSerializer.java:370)
at corebus.test.deprecated.TestMain.main(TestMain.java:507)
最佳答案
感谢@Kit Ho 的回答。我使用了您的代码,发现在创建 JSONObject 时我的 InputStream 始终为 null 和 ClassNotFound 异常的地方不断遇到错误。这是我的代码版本,对我有用:
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.json.JSONObject;
public class JSONParsing {
public static void main(String[] args) throws Exception {
File f = new File("file.json");
if (f.exists()){
InputStream is = new FileInputStream("file.json");
String jsonTxt = IOUtils.toString(is, "UTF-8");
System.out.println(jsonTxt);
JSONObject json = new JSONObject(jsonTxt);
String a = json.getString("1000");
System.out.println(a);
}
}
}
我发现这个答案对 difference between FileInputStream and getResourceAsStream 很有启发性。 .希望这对其他人也有帮助。
https://stackoverflow.com/questions/7463414/