2017-01-31 5 views
0

私はこのコードを持っている:辞書型のStringBufferの値をJavaでプリントするには?

StringBuffer sb = new StringBuffer(); 
try { 
    BufferedReader reader = request.getReader(); 
    String line = null; 
    while ((line = reader.readLine()) != null) { 
     sb.append(line); 
     System.out.println(line); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

ライン:このようなループの最後にコンソールで

System.out.println(line); 

プリント:

{"signupname":"John","signuppassword":"1234","signupnickname":"Jonny",  
"signupdescription":"student","signupphoto":"(here photo url)"} 

を私だけの値を取得する方法キーの? ジョンジョニー 学生 (ここでは写真のURL)ヘルパーのための

感謝:)

+0

サンプル入力を投稿してください。 –

+0

あなたの入力データには、すべてのオブジェクトがキーの値として存在しますか?または、** **常に** {key:正確な値、key:正確な値}となります – CraigR8806

+0

split-methodをカンマで使用すると、キーと値のペアを取得できます。その後、splitメソッドをコロンで使用して値を取得することができます。 – IQV

答えて

3

各行は、完全なJSONオブジェクトである場合。 Gson JSONパーサーを使用することができます。

https://mvnrepository.com/artifact/com.google.code.gson/gson

StringBuffer sb = new StringBuffer(); 
try { 
    BufferedReader reader = request.getReader(); 
    String line; 
    Gson gson = new Gson(); 
    while ((line = reader.readLine()) != null) { 
    Map map = gson.fromJson(line, Map.class); 
    for(Object value : map.values()) { 
     System.out.println(value); 
    } 
    sb.append(line); 
    System.out.println(line); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

は完璧に動作します、ありがとうございます! – user6561572

2

フォーマットはJSONのようになります。私はこのような何かをしたいです。それが正しい場合は、好きなJSONパーサーを使用して、キーだけを取得します。

など。 org.json:Maven Centralのjson

https://github.com/stleary/JSON-java

関連する問題