Json.NET の学習を開始していますが、そのシリアライザーの使用に問題があります。Web.API サービスを使用した新しい MVC4 プロジェクトがあります。
public class PTE_TestsController : ApiController {
PTE_TestsRepository _repository = new PTE_TestsRepository();
// GET /api/PTE_Tests/5
public HttpResponseMessage<string> Get(int id) {
try {
PTE_Test test = _repository.GetTest(id);
return new HttpResponseMessage<string>(JsonConvert.SerializeObject(test));
} catch {
return new HttpResponseMessage<string>(HttpStatusCode.NotFound);
}
}
}
JsonConvert.SerializeObject() は期待どおりに機能し、文字列を返します。私の Web.API コントローラーは、HttpResponseMessage の一部としてそれを返します。最終結果を Fiddler で表示すると、JSON データではなく、JSON データが再度シリアル化されます (私はそう思います)。
"{\"ID\":1,\"Name\":\"Talar Tilt\",\"TagID\":1,\"PracticeID\":1,
\"SpecificAreaID\":1,\"TypeID\":1,\"VideoID\":1,\"PicID\":1}"
Json.NETを直接使用できるように、デフォルトのシリアライザーをオフにする方法を知っている人はいますか? ところで、私はデフォルトのシリアライザーを使用していません。なぜなら、複雑なオブジェクトで動作させる方法がわからないからです (PTE_Test には最終的に List 型のメンバーが含まれます)。
または、複雑なオブジェクトでデフォルトのシリアライザーを使用する方法を誰かが説明できれば、私の問題も解決します。MSDN の説明は役に立ちませんでした。