同じタイトルで同様の質問がありますが、解決策は私の問題では有効ではありません。配列を含むJSONのJavaScriptSerializer
私は、次のJSONシリアライズしようとしている:私のC#でこの構造により
{"Id":1,
"Questions":
[{"Id":"q-1-Q0001","Text":"Volume Too High"},
{"Id":"q-1-Q0002","Text":"Volume Too Low"}],
"Text":"My text."}
を:
public class Issue
{
public Issue() { Questions = new List<Question>(); }
public string Id { get; set; }
public List<Question> Questions { get; set; }
public string Text { get; set; }
}
public class Question
{
public string Id { get; set; }
public string Text { get; set; }
}
私はJavaScriptを有効にしてC#関数に上記JSONをPOSTを送信するがあります。
public JsonResult AddIssueToQueue(Issue issue)
{
var id = issue.Id; // Set correctly
var text = issue.Text; // Set correctly
var q = issue.Questions; // NOT set correctly. Set to List of two empty Question items.
}
idとtextは正しく設定されていますが、qは2つの空のQuを含むリストに設定されていますestionオブジェクト(IdとTextはそれぞれnull)
JSONのフォーマットが間違っていますか? Questions配列が正しく伝播しないのはなぜですか?
'issue.Id'と' issue.Text'は正しく設定されていますか? –
はい。 idとtext(issue.Idとissue.Text)は正しい値を保持します。 – Paul
私はこれがそれであるとは思わないが、JavaScriptSerializerを使ってIssueクラスをシリアル化すると、issue ID、すなわち{{"Id": "1"、 'しかし、引用符の有無にかかわらずデシリアライズできます。 – rsbarro