url json 파싱하는데 에러
안녕하세요
url에 있는 json을 가져와서 페이지에 띄울려고 합니다.
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import org.json.simple.JSONValue;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject; // JSON객체를 만드는데 사용
import org.json.simple.parser.ParseException; //예외처리
public static void main(String[] args) throws IOException, ParseException {
URL url = new URL("hsas");
InputStreamReader isr = new InputStreamReader(url.openConnection().getInputStream(), "UTF-8");
JSONObject object = (JSONObject)JSONValue.parse(isr);
이렇게 하면
Exception in thread "main" java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject
이 오류가 뜹니다.
왜그러까요?
http://javastudy.tistory.com/80 참고했습니다.
안녕하세요.
에러 코드에 나와있는대로 JsonArray 형태를 JsonObject 형태로 캐스팅을 하려 해서 생긴 오류입니다.
import java.net.*;
import java.io.*;
public class ReadDataFromURL {
public static void main(String[] args) throws IOException {
if (args.length == 0) {
System.out.println("java ReadDataFromURL URL");
System.exit(0);
}
URL url = new URL(args[0]);
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
char[] buff = new char[512];
int len = -1;
while( (len = br.read(buff)) != -1) {
System.out.print(new String(buff, 0, len));
}
br.close();
}
}만약 저 Array 형태를 사용하고 싶다면 받은 데이터를 반복문으로 출력을 해주시면 됩니다.
그게 아니면
이런 식으로 처리해주면 작업이 가능해지겠네요.
도움이 되셨길 바랍니다.
일단 jsonarray로 받아온것을 jsonobject로 바꾸려고하는게 안된다고 나온거네요
InputStreamReader isr = (JSONObject)jsonParser.parse(new InputStreamReader(url.openConnection().getInputStream(), "UTF-8"));한번테스트해보시겠어요?