我读过与此类似的其他问题,它们并不相同。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