JsonConvert.DeserializeObjectとJSON.net問題
-
20-09-2019 - |
質問
私は次のコードとJSONを持っています:
public class Labels
{
public Labels()
{}
public Label[] Label {get;set;}
}
public class Label
{
public Label()
{ }
public string Name { get; set; }
public int TorrentsInLabel { get; set; }
}
//...
Labels o = JsonConvert.DeserializeObject<Labels>(json);
//...
{"label":
[
["seq1",1]
,["seq2",2]
]}
Iは、ラベルオブジェクトにデシリアライズするために、この配列[ "SEQ1"、 "1"]たいです。私は何をしないのですか?一部の属性?
私は実行すると私は例外を取得:タイプにJsonArrayContractを期待 'test_JSONNET.Label'、 'Newtonsoft.Json.Serialization.JsonObjectContract' だ。
。TNX
GG
解決
デフォルトでは、クラスは、クラスのプロパティは、JSONオブジェクトのプロパティになりJSONオブジェクトにシリアル化します。
{
Name: "seq",
TorrentsInLabel: 1
}
あなたはJson.NETシリアライザは、デフォルトではどのように動作するかではない配列にそれをシリアライズしようとしている。
あなたがJsonConverterを作成し、それが(配列)であることを望むものであることを手動でラベルのためのJSONを読み、書くべき欲しいものを手に入れるます。
他のヒント
どのようJsonConvertは「SEQ1」は名前に対応し、「1」はTorrentsInLabelに対応していることを知ることができますか? JsonObjectAttribute、JsonPropertyAttribute、JsonArrayAttribute
を見てください。所属していません StackOverflow