2

次のコードがあり、有効な JSON で実行すると、フィールド名に対して null が返されます。私はこれについて何時間も頭を悩ませてきました。

    JsonFactory jFactory=new JsonFactory();
    JsonParser parser=jFactory.createJsonParser(bytes);

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        String field_name=parser.getCurrentName();
        System.out.println("fieldName: "+field_name);
        parser.nextToken();
        if(field_name.equals("value")){
            System.out.println("value found");
            data=parser.getBinaryValue();
            out.write(new String(data));
        }//if
    }//while
    parser.close();

JSON サンプル:

      {
     "mimetype" : "text/plain",
     "value" : "c2FzCg=="
      }
4

1 に答える 1

2

あなたはほとんどそこにいます。nextTokenをスキップするには、while 構造の前に必要なだけですJsonToken.START_OBJECT

このような:

parser.nextToken();
while (parser.nextToken() != JsonToken.END_OBJECT) {
于 2012-07-19T06:56:44.420 に答える