有 Java 编程相关的问题?

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

线程“main”java中的json异常。java上的lang.NullPointerException。伊奥。StringReader<初始化>(未知源)

我正在尝试将Xml字符串转换为json对象。我正在使用组织。Json包。我已经向wolfram alpha服务器请求了信息。服务器返回xml,我想使用该组织。json包将其转换为json。我尝试使用的方法是静态的,它位于XML类中。我创建了一个JSONObject方法,以为我会转换,但我一直收到一条错误消息

这是我主要方法中的代码

import java.net.*;
import java.io.*;
import org.json.*;
import java.net.URLConnection;
import java.util.Scanner;
import java.net.URL;
import javax.swing.*;


public class Test {

public static void main(String[] args)throws IOException,   JSONException{//Beginning of class
    // TODO Auto-generated method stub
    String appID = "YWT4UP-Y9W7AREAHJ";
    String search = "bird";

    URL wolframData = new URL("http://api.wolframalpha.com/v2/query?input="+search+"&appid="+appID);

    URLConnection connection = wolframData.openConnection();

    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    //reads in the data
    String xmlDoc;

    while((xmlDoc = in.readLine()) != null) //converts buffer reader to string
    System.out.println(xmlDoc);
    in.close();

   JSONObject jsonDoc = (JSONObject) XML.toJSONObject(xmlDoc);



}//End of method

}//End of class

以下是当它到达将xml转换为json的代码时显示的错误消息:

Exception in thread "main" java.lang.NullPointerException
at java.io.StringReader.<init>(Unknown Source)
at org.json.JSONTokener.<init>(JSONTokener.java:85)
at org.json.XMLTokener.<init>(XMLTokener.java:55)
at org.json.XML.toJSONObject(XML.java:329)
at Test.main(Test.java:31)

共 (1) 个答案

  1. # 1 楼答案

    我认为答案应该是

    import java.net.*;
        import java.io.*;
        import org.json.*;
        import java.net.URLConnection;
        import java.util.Scanner;
        import java.net.URL;
        import javax.swing.*;
    
    
        public class Test {
    
        public static void main(String[] args)throws IOException,   JSONException{//Beginning of class
            // TODO Auto-generated method stub
            String appID = "YWT4UP-Y9W7AREAHJ";
            String search = "bird";
    
            URL wolframData = new URL("http://api.wolframalpha.com/v2/query?input="+search+"&appid="+appID);
    
            URLConnection connection = wolframData.openConnection();
    
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            //reads in the data
            String xmlDoc;
        StringBuilder sb = new StringBuilder();
            while((xmlDoc = in.readLine()) != null) { //converts buffer reader to string
            System.out.println(xmlDoc);
        sb.append(xmlDoc);
        }
            in.close();
    
           JSONObject jsonDoc = (JSONObject) XML.toJSONObject(sb.toString());
    
    
    
        }//End of method
    
        }//End of class