我正在使用JSON.Net来序列化我的对象。例如,如果这是我的对象
Class MainData
{
[JsonProperty("keyValues")]
string val;
}
'val'的数据是一个键值对字符串,如key1:value1。 我有一个场景,我不应该在我的最终序列化字符串中获得上面的'keyValues'名称,而是获得一个看起来像这样的序列化字符串
{
"key1":"value1"
}
目前使用我的序列化程序,我得到了这个,这不是我需要的
{
"keyValues":"key:value1"
}
有人可以指导我使用任何文档/解决方案来动态分配字段的名称,而不是使用在对象中定义的默认变量名称/ JSONProperty名称吗?
提前多多感谢。
答案 0 :(得分: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"}}