我正在尝试编写一个将JSON数据写入文件的简单Java程序。我正在使用JSON简单jar文件编译它,但我收到一个错误。以下是我的所作所为:
//JsonSimpleWriteExample.java
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.io.FileWriter;
import java.io.IOException;
public class JsonSimpleWriteExample {
public static void main(String[] args) {
JSONObject obj = new JSONObject();
obj.put("name", "mkyong.com");
obj.put("age", new Integer(100));
JSONArray list = new JSONArray();
list.add("msg 1");
list.add("msg 2");
list.add("msg 3");
obj.put("messages", list);
try (FileWriter file = new FileWriter("f:\\test.json")) {
file.write(obj.toJSONString());
file.flush();
} catch (IOException e) {
e.printStackTrace();
}
System.out.print(obj);
}
}
要在终端中编译上述程序,我正在做:
javac -cp json-simple-1.1.1.jar JsonSimpleWriteExample.java
我从http://www.java2s.com/Code/Jar/j/json-simple.htm
下载了json-simple-1.1.1.jar
文件
我收到以下错误:
Note: JsonSimpleWriteExample.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
我正在使用MacOS。任何人都可以帮我解决这个问题。
当我尝试运行我的类文件时,我收到以下错误:
$ java JsonSimpleWriteExample
我得到的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/JSONObject
at JsonSimpleWriteExample.main(JsonSimpleWriteExample.java:11)
Caused by: java.lang.ClassNotFoundException: org.json.simple.JSONObject
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
答案 0 :(得分:0)
如您所知,使用外部jar文件进行编译,以便编译器找到您在编译期间使用的符号。
javac -cp json-simple-1.1.1.jar JsonSimpleWriteExample.java
必须在运行时完成同样的事情:
java JsonSimpleWriteExample -cp ./json-simple-1.1.1.jar
在您的示例中,这是输出:
{"name":"mkyong.com","messages":["msg 1","msg 2","msg 3"],"age":100}
答案 1 :(得分:0)
import org.json.simple.JSONObject;
JSONObject jsonObject = (JSONObject) yourOrginalObject;
//code for get all keys from json
Set<String> keys=jsonObject.keySet();
//iterate the keys
//get values by passing keys
jsonObject.get(pass individual keys);