JSONを返さなければならないwcfサービスがあります。私のコードは次のようになります:
public String areaGetStreetTypes(int city_id, int language_id)
{
string json = "";
string responseList = "{\"triname\":\"IMP\",\"name\":\"IMPASSE\"}";
if (responseList.Length != 0){
string responseStatusJSON = "{\"status\":0, \"message\":\"Success !!!\"}";
json += "{\"responseList\":[" + responseList + "],";
json += "\"responseStatus\":" + responseStatusJSON + "}";
}
else{
string responseStatusJSON = "{\"status\":1, \"message\":\"Error !!!\"}";
json += responseStatusJSON;
}
return json;
}
//my interface looks like
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "areaGetStreetTypes", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
String areaGetStreetTypes(int city_id, int language_id);
生の形式での応答:
{"areaGetStreetTypesResult": "{\" responseList \ ":[{\" triname \ ":\" IMP \ "、\" name \ ":\" IMPASSE \ "}]、\" responseStatus \ ":{\" status \ ":0、\" message \ ":\" Success !!! \ "}}"}
テストにはphpスクリプトを使用します。最初のデコード後:
stdClass Object(
[areaGetStreetTypesResult] => {"responseList":[{"triname":"IMP","name":"IMPASSE"}],"responseStatus":{"status":0, "message":"Success !!!"}}
)。
2番目のjson_decodeの後でのみ、必要なものが得られます:GOOD JSON Response
良いJSONを初めて取得するために、サービスで何を変更できますか?一度だけデコードしたい。