からいくつかのJSONオブジェクトを含む文字列を返す:は、私は以下のDTOを持ってServiceStack
public class MyDTO
{
public int Id { get; set; }
public String Info { get; set; }
}
情報要素は、複数の異なるタイプのものとすることができるいくつかのシリアル化されたJSONオブジェクトが含まれています。私のサービス機能で は、私が使用して、このDTOを返すreturn x.ConvertTo<MyDTO>()
私の問題があるためServiceStackが情報がエスケープされているJSON、情報の特殊文字(引用符)を保持していることを認識していない、ということ、です。
だから私はサービスから
{"Id":15,"Info":"[\"Test1\",\"Test2\",\"Test3\"]"}
を得るが、私が取得したいと思いが実際
{"Id":15,"Info":["Test1","Test2","Test3"]}
いくつかの方法がありますされ、情報はJSONデータを保持していることServiceStackを伝えるためにとしたがって、それが文字列をエスケープするのを防ぎ、その代わりにJSON値をレスポンスに直接挿入しますか?
P .:私の質問は、サービスのデフォルトDTOエンコーディングを強制的にJSONに強制することに関係するthat questionの複製ではありません。私の問題は特定のタイプに対してJSONエンコーディングがどのように起こるかを扱っています。 InfoでJSON値をシリアル化するためにそれを返す前に正規化することができる方法MyDTO
public class MyDTO<T> : MyDTO {
public MyDTO(MyDTO dto) {
this.Id = dto.Id;
this.Info = JsonConvert.DeserializeObject<T>(dto.Info);
}
public new T Info { get; set; }
}
のInfo
プロパティを解釈できる組成物を用いて
[ServiceStackのデフォルトフォーマット](https://stackoverflow.com/questions/10317225/servicestack-default-format)の可能性のある重複 –
を生成しますその質問。これは、サービスのデフォルトのDTOエンコーディングをJSONに強制することに関係しますが、私の問題は特定のタイプのJSONエンコーディングがどのように起こるかを扱っています。 – mat
おそらくこれは役に立ちますか? ►https://stackoverflow.com/questions/4729811/json-net-unexpected-characters-when-serializing-my-entities-entity-framew – Nope