2016-04-10 14 views
0

私は、次の形式の文字列があります。Javaの文字列の解析

{"id":"1263e246711d665a1fc48f09","facebook_username":"","google_username":"814234576543213456788"} 

を、時には、この文字列は次のようになります。私はのインデックスを知っていない場合、私はそれらの値を抽出することができますどのように

{"id":"1263e246711d665a1fc48f09","facebook_username":"109774662140688764736","google_username":""} 

サブストリングは異なるケースで変わるでしょうか?

+8

これはJSON文字列です。それを解析する代わりに、この文字列から 'JSONObject'を生成するJSONライブラリを見つけてください。 Java EE 7以降を使用している場合、JSON-Pフレームワークを見ることができます。 –

+0

私はGaruGaruの答えが正しいと信じていますが、本当に簡単な方法でこの問題を解決しました。 'json =新しいJSONObject(JsonResponse); 文字列myID = json.getString( "id");文字列googleUserName = json.getString( "google_username"); ' – Lenny

答えて

3

json形式のように見えますが、Gson libraryにその文字列を自動的に解析するgoogleが必要です。

あなたのクラスは、この

public class Data 
{ 
private String id; 

private String facebook_username; 

private String google_username; 
// getters/setters... 
} 

のようになります。そして、あなたは、単にJSON文字列からオブジェクトを作成する機能を作成することができます

Data getDataFromJson(String json){ 
    return (Data) new Gson().fromJson(json, Data.class); 
} 
+0

非常に良い答え、ようこそstackoverflow! –

1

文字列をJSONにフォーマットされている(JavaScriptのオブジェクトを記法)。データを転送するために使用される共通言語です。

GoogleのライブラリGsonを使用して解析することができます。クラスパスに追加するだけです。

Gson gson = new Gson(); 
    //convert the json string back to object 
    DataObject obj = gson.fromJson(br, DataObject.class); //The object you want to convert to. 

https://github.com/google/gson

Check this out on how to convert to Java Object

0

解析にもかかわらず、ここでは純粋な文字列ベースのソリューションですJSONとして:他のフィールドのidを交換

String id = str.replaceAll(".*\"id\":\"(.*?)\".*", "$1"); 

そして、他の2についても同様、名前。