2012-04-18 9 views
0

JSON.Netを使用してオブジェクトをシリアル化しています。 VALUE1:これは私のオブジェクトJSONパーサーを使用して動的フィールド名をシリアル化する方法

Class MainData 
{ 
    [JsonProperty("keyValues")] 
    string val; 
} 

ある場合などについては、「ヴァル」のデータは、このキー1のようなキーと値のペアの文字列です。されていない 私は、私が代わりに私の最後のシリアライズされた文字列に上記「はkeyValues」名前を取得してはならないシナリオがこの

{ 
    "key1":"value1" 
} 

は、現在、私のシリアライザと、私はこれを取得していますように見えるシリアライズされた文字列を取得してい私は

{ 
    "keyValues":"key:value1" 
} 

は、誰かがオブジェクトの内部で定義されたデフォルトの変数名/ JSONProperty名前を使用するのではなく、動的にフィールドの名前を割り当てるために、任意のドキュメント/ソリューションに私を導くことができる必要がありますか?

ありがとうございます。

答えて

1

私はこれまで何度も苦労してきましたが、辞書オブジェクトを使用してこれをシリアライズしました。 しかし、私はメッセージを読むことはできませんでした。キーは、これが今の私のために働くの文字列またはオブジェクト」 ではなく、私のキー/値のペアを与えたときに辞書をシリアル化することはできません

私持って、次のオブジェクト

public class Meal { 
public int mealId; 
public int value; 
public Meal(int MealId, int Value) { 
mealId = MealId; 
value = Value; 
} } 

public class Crew 
{ 

public Meal[] AllocatedMeals { 
get { 
return new Meal[]{ 
new Meal(1085, 2), 
new Meal(1086, 1) }; } } 

public int AllocatedMealTotal { 
get { 
return this.AllocatedMeals.Sum(x => x.value); } } 
} 

次のコード

Dictionary<string,string> MealsAllocated = crew.AllocatedMeals.ToDictionary(x => x.mealId.ToString(), x => x.value.ToString()); 

return new JavaScriptSerializer().Serialize(
new { 
Allocated = new { 
Total = crew.AllocatedMealTotal, 
Values = MealsAllocated }) 

働いていたこと

"Allocated":{"Total":3,"Values":{"1085":"2","1086":"1"}} 
+0

おかげでジョン、私はこれを試してみて、バック – 2ndlife

+1

を取得しますを取得する!!!、私がしなければならなかったすべては「辞書<文字列、文字列>ヴァル」に「という文字列をval」を作るました。シンプルなので、コードのおかげで、それは私がアイデアを得るのを助けました。 – 2ndlife

関連する問題