2017-11-27 64 views
0

申し訳ありませんが、以前はこの質問をしていましたが、私は相対的に見つけることができません。JAVAの文字列(文字配列)からキー値を抽出する方法

私のクエリは、このような

文字列である - > { "値":123、 "キー":ABC}。 =>

String str = ['"','v','a','l','u','e',':','1','2','3',',','k','e','y',':','a','b','c','"']; // char array 

STRに

変更[0]」になり、STR [1]になりますV

は、だから私は私が取得したい場合に可能であるかどうかを知りたいですこのことにより、値 のは、私が試した

str.getString("value") = 123 <- output expecting 

ものとしましょう:。

1. JSONObject newStr = (JSONObject)JsonSerializer.toJSON(str); 
2. Str.contains("key") 
3. JSONObject newStr = new JSONObject(str); 

しかし、何も私の仕事はありません。 誰でも私を助けることができます。

私はこのような答えを得ることができる方法はありますか?

str.get( "値")= 123 とstr.get( "キー")は、ABC

+0

https://stackoverflow.com/questions/3481828/how-to-split-a-string-in -java –

+0

[Javaで文字列を分割する方法](https://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java)の可能な複製 –

+0

より多くの努力をする必要があります取得するため 完了しました –

答えて

2

たぶんそれぞれ{}でchar配列の最初と最後の要素を更新します=

から文字列を作成します。

JSONObjectで解析し、必要なものを取得できます。

サンプルコード:

 Character[] str = {'{', 'v','a','l','u','e',':','1','2','3',',','k','e','y',':','a','b','c','}'}; 
     StringBuilder sb = new StringBuilder(str.length); 
     for (Character c : str) 
      sb.append(c.charValue()); 
     String strb = sb.toString(); 

     JSONObject obj = new JSONObject(strb); 

     System.out.print(obj.get("value")); 

出力

+0

これは答えの一つかもしれませんが、これはブルートフォースですが、私はいくつかの最適化ソリューションやライブラリを探しています。 –

関連する問題