有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java读取简单json库文件

今天我开始学习json文件,并使用NetBeans和json库进行了测试:

package tp;

import java.io.FileInputStream;
import java.io.IOException;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import org.apache.commons.io.IOUtils;

public class Tp {
    public static void main(String[] args) throws IOException {
        String jsonTxt = IOUtils.toString(new FileInputStream("test/test/test1.json"), "UTF-8");
        System.out.println("jsonTxt.length " + jsonTxt.length());

        JSONArray root = (JSONArray) JSONSerializer.toJSON(jsonTxt);
        JSONObject document = root.getJSONObject(0);

        String tag = document.getString("tag");
        System.out.println("tag " + tag);
    }
}

这是我的json文件:

{
    "tag": "value"
}

我打算读取并显示值,但我得到:

jsonTxt.length 25    
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at tp.Tp.main(Tp.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 13 more
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

第15行是:JSONArray root=(JSONArray)JSONSerializer。toJSON(jsonTxt)

我做错了什么

解决方案:

添加所有库:commons-io-2.4。jar,ezmorp-1.0.6。jar,json-lib-2.4-jdk15。jar,commons-logging-1.2。jar,commons-lang-2.6。罐子,commons-beanutils-1.9.2。jar,commons-collections-3.2.1。罐子

package tp;

import java.io.FileInputStream;
import java.io.IOException;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import org.apache.commons.io.IOUtils;

public class Tp {
    public static void main(String[] args) throws IOException {
        String jsonTxt = IOUtils.toString(new FileInputStream("test/test/test1.json"), "UTF-8");
        System.out.println("jsonTxt.length " + jsonTxt.length());

        JSONObject root = (JSONObject) JSONSerializer.toJSON(jsonTxt);

        String tag = root.getString("tag");
        System.out.println("tag " + tag);
    }
}

谢谢


共 (0) 个答案