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 クエリに変換する値を追加しようとしています。

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

しかし、Eclipse はエラー Invalid Character constant on line を表示しています

json.put('set_boot' : True);

私は他のいくつかの単語も書いてみました

json.put('set' : True);

しかし、それでも同じエラーが発生します。

4

2 に答える 2

3

これがJavaであることを意図している場合は、次のことが必要です。

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

(後々、同様の問題が出てきます。)

ノート:

  • 文字列リテラルは、Java では一重引用符ではなく二重引用符で囲まれています
  • 2 つの引数でメソッドを呼び出しています - コンマを使用して引数を区切ります
  • Java の真偽値は でありtrue、 ではありませんTrue必要に応じて、文字列"True"を設定するために使用できます
  • filterList宣言される前に使用しようとしています
  • そのメソッドが存在しないときにputを呼び出そうとしています...つまりListadd
  • のリテラル6005076802818994A0000000000009DDが無効です。文字列リテラルを使用するつもりでしたか?

これらはすべて Java 言語の問題であり、JSON 自体とは何の関係もありません。

于 2013-10-29T07:28:11.677 に答える