0

我正在使用 JSON.Net 序列化我的对象。例如,如果这是我的对象

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

'val' 的数据是一个键值对字符串,例如 key1:value1。我有一个场景,我不应该在我的最终序列化字符串中获得上面的“keyValues”名称,而是获得一个看起来像这样的序列化字符串

{
    "key1":"value1"
}

目前使用我的序列化程序我得到了这个,这不是我需要的

{
     "keyValues":"key:value1"
}

有人可以指导我使用任何文档/解决方案来动态分配字段名称,而不是使用对象内部定义的默认变量名称/JSONProperty 名称吗?

提前非常感谢。

4

1 回答 1

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"}}
于 2012-04-18T15:28:37.873 回答