2

JSON形式でデータベーステーブルを返すWCFサービスがあります。SeralizeObjectはhttpresponseにUnicodeを追加しますが、これを削除するにはどうすればよいですか?

コード:

using (var db = new newTestDBContext())
        {
          var query = from b in db.Roads
                       orderby b.roadID
                     select b;
          Road rr = query.First();
          var serializerSettings = new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects };
          return JsonConvert.SerializeObject(rr, Formatting.Indented, serializerSettings);

応答:

"{\u000d\u000a  \"$id\": \"1\",\u000d\u000a  \"roadparts\": [\u000d\u000a    {\u000d\u000a      \"$id\": \"2\",\u000d\u000a      \"Road\": {\u000d\u000a       
4

2 に答える 2

2

ResponseFormat = WebMessageFormat.Json

これにより、アノテーション付きメソッドの戻り値が JSON エンコードされます。戻り値がすでに JSON 文字列である場合は、JSON を 2 回エンコードしています。最初にRoadオブジェクトをエンコードし、次に前者の結果の JSON 文字列をエンコードします。

したがって、Roadオブジェクトを返してWebMessageFormat.json、json エンコーディングを処理させます。

于 2013-02-07T10:05:50.183 に答える