我讀過與此類似的其他問題,它們並不相同。JsonSerializer反序列化字符串錯誤 - 無效的原語
我試圖讓這個值轉換成字符串屬性:
{
"Save": {
"InArguments": [
{
"ArgumentName": "Id",
"Value": "UVE1NjFGdVVFZU95OWdCUVZvZGc1Zzo1MDow"
}
]
}
}
該物業爲標識 - 值應該是「UVE1NjFGdVVFZU95OWdCUVZvZGc1Zzo1MDow」
類有此屬性:
public string Id { get; set; }
我有這個類中的其他數據類型,集合和布爾,他們得到反序列化就好了。它不喜歡這個價值是什麼?我試着把它寫成小寫,認爲格式不好 - 不行。此值包含的是加密的ID。
這裏是我如何獲得在InArguments類中的JSON我想要的特定項目:
public new T Get(ActivityContext activityContext)
{
var item = activityContext.DataContext.Arguments.Find(r => r.ArgumentName.ToLower() == ArgumentName);
try
{
if (null != item)
{
if (null != item.Value)
{
Type argumentType = Nullable.GetUnderlyingType(typeof(T)) ?? typeof(T);
var jsSerializer = new JavaScriptSerializer();
return (T)jsSerializer.Deserialize<T>(item.Value.ToString());
}
else
{
return default(T);
}
}
return default(T);
}
catch (Exception ex)
{
//log exception
}
return default(T);
}
的ArgumentType返回是一個字符串。它正試圖填充的屬性究竟是什麼數據類型。 GET方法我對象的初始化期間調用我想:
var sendDefinitionRestHandler = new SendDefinitionRestHandler()
{
Id = Id.Get(activityContext)
};
希望這是足夠的信息,讓我知道如果你需要我詳細說明什麼。謝謝你的時間。
無效的JSON ... –
這是真的。我添加了額外的數據以使其有效。 – DeepToot