0

JSONを返すWebサービスを呼び出しています。そのJSON内に、URLを保持するプロパティがあります。しかし、そのURL内のコロン(:)により、Gsonはgson.stream.MalformedJsonExceptionエラーをスローします。これらのキーと値をラップする必要があることはわかっています

Webサービスによって返されるJSON:

{
   ID=15; 
   Code=ZPFgNr; 
   UserName=https://www.google.com/accounts/o8/id?id=xxxxxx; //<--problem
   FirstName=Joe
}

私のJava:

resultData=((SoapObject) result).getProperty(0).toString();
User response = gson.fromJson(resultData, User.class);

これらのキーと値は二重引用符で囲む必要があることを私は知っています。しかし、そうではなく、それが問題のようです。

だから私の質問は:

なんらかの方法で逆シリアル化する前に、このJSONをエンコードする必要がありますか?もしそうなら、どのように?

また

検索して置換しhttps:、結腸を脱出する必要があります。もしそうなら、どのように結腸を脱出するのでしょうか?

4

1 に答える 1

4

JSONは、コンマを使用して属性を区切り、コロンを使用して属性名を属性値から区切り、名前と値を二重引用符で囲みます。これは有効なJSONではありません。

有効なJSONは次のとおりです。

{
   "ID" : "15", 
   "Code" : "ZPFgNr",
   "UserName" : "https://www.google.com/accounts/o8/id?id=xxxxxx",
   "FirstName" : "Joe"
}
于 2012-12-29T16:01:16.963 に答える