2013-10-29 4 views
0
public class Test { 

    public static void main(String[] args) throws ClientProtocolException, IOException { 
    HttpClient client = new DefaultHttpClient(); 

    JSONObject json = new JSONObject(); 
    json.put('set_boot' : True); 
    json.put('synchronous': True), 
    json.put('filters',filterList); 

    List filterList = new ArrayList(); 
    filterList.put(6005076802818994A0000000000009DD); 

    json.put('volumes':volumeList); 

    List volumeList = new ArrayList(); 
    volumeList.add('*all'); 

    json.add('allow_unsupported': True); 
    StringEntity se = new StringEntity(json.toString()); 
    System.out.println(se); 
    } 
} 

나는 같은 JSON 쿼리로 변환 값을 추가하려고 :잘못된 문자 상수 JSON

{ 
    'set_boot': True, 
    'synchronous': True, 
    'filters': { 
     'host_refs': [u '6005076802818994A0000000000009DD'] 
    }, 
    'volumes': ['*all'], 
    'allow_unsupported': True 
} 

그러나 이클립스 줄에 나에게 오류 잘못된 문자 상수 을주고있다

json.put('set_boot' : True); 

다른 단어도 쓰려고했습니다.

json.put('set' : True); 

하지만 여전히 동일한 오류가 발생합니다. 참고

json.put("set_boot", true); 
json.put("synchronous", true); 

(비슷한 문제가 나중에이 있습니다.)

:이 자바 될 운명 경우

+0

'True'가 아니라'True'. ;) –

+0

왜 '사실'이 아니라 '사실'입니까? 나는 당신이 그것들을 생성하기 바로 전에 많은 물체를 추가하고있는 것을 본다. 그건 맞지 않아. – wxyz

+1

어떤 언어입니까? 그것은 유효한 자바가 아니기 때문에 ... –

답변

3

, 당신이 원하는

  • 문자열 리터럴은 큰 따옴표에 , Java의 작은 따옴표가 아닙니다.
  • 두 개의 인수가있는 메소드를 호출합니다. 쉼표를 사용하여 인수를 구분합니다.
  • Java의 부울 값이 true이고 True이 아님. 당신이
  • 를 원하는 경우가 당신은 그 방법이 존재하지 않는 경우, Listput를 호출하려는
  • 선언되기 전에 당신은 filterList을 사용하려는 문자열 값을 설정 "True"를 사용할 수 있습니다 .. 당신이 의미하는 것 add
  • 귀하의 문자 그대로 6005076802818994A0000000000009DD은 유효하지 않습니다. 문자열 리터럴을 사용하셨습니까?

이들은 모두 자바 언어의 문제이며 JSON과는 아무런 관련이 없습니다.

+1

또한'put'은'java.util.List'의 메소드가 아닙니다 (사용하고 있다고 가정 할 때).'string' 변수는 어디에도없는 것처럼 보입니다. 그는 단지 사용자 이름이 제안하는 구문/라이브러리에 익숙하지 않습니다. – Brian

+0

@ 브라이언 : 예, 다른 문제가 있습니다. –

+0

@ 브라이언 : 재미있는 비평에 감사드립니다. . Jon Skeet : 많이 고맙습니다 –

1

Java에서 snytax 오류 외에도 JSON 예제도 유효하지 않은 구문입니다. jsonlint 또는 다른 서비스를 사용하여 확인하십시오. 다음과 같이 표시되어야합니다 :

{ 
    "set_boot": true, 
    "synchronous": true, 
    "filters": { 
     "host_refs": [ 
      "6005076802818994A0000000000009DD" 
     ] 
    }, 
    "volumes": [ 
     "*all" 
    ], 
    "allow_unsupported": true 
} 
+0

실제로 파이썬에 있어야했기 때문에 파이썬에 대해 많이 알지 못합니다. 그래서 나는 'to'로 바꾸는 것을 잊었다. –