2016-04-08 17 views
1

私のXML文字列をjsonオブジェクトに変換しようとしています。私はorg.Jsonパッケージを使用しています。私はwolfram alphaサーバからの情報を要求しました。サーバーはxmlを返すので、org.jsonパッケージを使用してjsonに変換します。私が使用しようとしているメソッドは静的で、XMLクラスの内部にあります。 JSONObjectメソッドを作成して、変換すると思っても、エラーメッセージが表示され続けています。スレッド "main"の例外java.io.StringReaderのNullPointerException。 <init>(Unknown Source)

私のメインの方法のコードです。 、私は答えはあるべきだと思う

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) 
+3

'' ':ここ

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 

は、それがJSONにXMLを変換するコードに到達したときに表示されるエラーメッセージですwhile((xmlDoc = in.readLine())!= null) '' 'Eh ...だから' 'xmlDoc'''はループの最後に常に' 'ヌル' 'になります。 –

+0

@ jornVerneeそれはどのようにプログラムに影響を与えますか?あなたが意味することをもっと詳しく説明できますか?解決策はありますか? – Ellipse

+0

参照:[Null Pointer Exceptionとは何ですか?どうすれば修正できますか?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do- i-fix-it) –

答えて

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 
+0

なぜString Builderクラスを使用する必要がありますか? – Ellipse

+0

私はstringBuilderを使用して、文字列連結と同じことを行います。しかし、文字列は不変ですが、変更可能です。 –

+0

ご協力いただきありがとうございます – Ellipse

関連する問題