2016-07-18 6 views
-1

javaを使用してJSON文字列を解析し、フィールドのオブジェクトタイプを変更する必要があります。例えば、私は以下のJSON文字列があります。JSON文字列のオブジェクトタイプを変更するにはどうすればよいですか?

{ 
    "_id" : ObjectId("54c955492b7c8eb21818bd09") 
    "firstName": "my name" 
} 

どのように私はこれを達成することができます

{ 
    "_id" : "54c955492b7c8eb21818bd09" 
    "firstName": "my name" 
} 

を私はJSON文字列は次のようになりたいですか?私はGsonパーサーを使用しています。実際のJSON文字列にJSONオブジェクトを変更

+0

構文エラーは別に、第二はJSONではありません。私がMongoDB OIDをエンコードするのを見たのは '" _id ":{" $ oid ":" 54c955492b7c8eb21818bd09 "}'です。 – chrylis

+0

はい。 GsonがObjectIdフィールドを含むUserオブジェクトにそれを逆シリアル化できるように、最初のJSONのidタイプを変更するにはどうすればよいですか。 – fivetech

答えて

0

液を用いた正規表現:

jsonString.replaceAll("(\"_id\" :)(\"[^\"]*\")", "$1ObjectId($2)"); 
-1

は次のように行われる:

JsonParser p = new JsonParser(); 

JsonElement r = p.parse("{ 
    \"_id\" : \"54c955492b7c8eb21818bd09\" 
    \"firstName\": \"my name\" 
}"); 
JsonObject ob = r.getAsJsonObject(); 

r.toString(); 
関連する問題