用数组中的空值反序列化JSON
Deserialize JSON with null values in array
我有以下JSON数组,它也可以为var数组中的一些元素保存空值。var数组中的元素总是固定的。
"vars": [
{
"varCol": [
{
"visible": false,
"val": 1,
},
{
"visible": false,
"val": 5,
},
{
"visible": false,
"val": 5,
},
null
],
"Type": "Type1"
"UniqueId": "ID1"
},
{
"varCol": [
{
"visible": true,
"val": 1,
},
null,
{
"visible": false,
"val": 5,
},
null
],
"Type": "Type2",
"UniqueId": "ID2"
}
]
我有以下c#反序列化类:
public class Var
{
public int VarId { get; set; }
public string Type { get; set; }
public List<VarCol> VarCols { get; set; }
}
public class VarCol
{
public int VarColId { get; set; }
public bool Visible { get; set; }
public float Val { get; set; }
}
我希望这里的输出是在VarCol中有一个条目,该条目始终保存数组中固定的值结构。在本例中,每个vars元素在varCol数组中有4个条目。对于JSON的反序列化,我使用:
Var v = JToken.Parse(json_string).ToObject<Var>();
我想把这个作为评论插入,但是它太长了,所以我不得不把它作为一个答案。
注意逗号,因为JSON是无效的。我想你应该是这样的:
{
"vars": [
{
"varCol": [
{
"visible": false,
"val": 1
},
{
"visible": false,
"val": 5
},
{
"visible": false,
"val": 5
},
null
],
"Type": "Type1",
"UniqueId": "ID1"
},
{
"varCol": [
{
"visible": true,
"val": 1
},
null,
{
"visible": false,
"val": 5
},
null
],
"Type": "Type2",
"UniqueId": "ID2"
}
]
}
祝你今天愉快,
阿尔贝托。
不确定您想要实现什么,因为JToken.Parse()处理null
值的方式与任何其他对象值几乎相同,因此varCol
将始终具有4个元素。
对不起,我的问题误导了你。我面临的问题是通过实体框架在Var集合中保存一个空VarCol到DB。因为我有一个固定大小的列表,所以我需要这样才能知道集合中哪些元素是空的。我通过用空VarCol实例化空VarCol来解决这个问题,正如Alex Skalozub在他的一个评论中指出的那样:
这取决于对象在数据库中的存储方式。如果VarCol与Var有多对一关系,EF可能会存储引用到VarCol表中的Var记录。但是空记录不能保存到数据库。这就是为什么回读只会带来那些记录得救了。您可能需要在解析后进行一些后处理在保存到DB之前,用空记录替换空值。–Alex Skalozub 5 hours ago
相关文章:
- 如何在C#中反序列化json对象
- .NET服务中的JSON反序列化-can'不能解决这个问题
- 如何在 Express/Node.js 中反序列化 JSON 数据
- 如何使用 Dojo.fromJson 反序列化包含控制字符的 Json 对象
- 部分平展的 JSON 的反序列化
- JavaScript 中的 JSON 反序列化
- 字符串化和解析 JSON(序列化对象结构)和反序列化,将 JSON 字符串转换为对象结构
- 如何反序列化复选框值的 JSON 数据
- 无法在 Javascript 中反序列化 JSON 对象
- jquery $.ajax 的 MVC 3 反序列化请求 json 到对象中填充空值而不是空白字符串
- c# Web服务到javascript反序列化JSON对象
- 在反序列化JSON对象时,是否有方法将属性名称转换为小写?
- 在Ext JS存储中反序列化json数据时区分模型类型
- . asmx怪从log4javascript日志反序列化JSON blob
- 使用JavaScriptSerializer反序列化JSON对象
- 美元http.get获取反序列化JSON,但不能将其赋值给array
- c#反序列化JSON html字符串
- 打字稿:如何使用私有变量反序列化 JSON 对象
- 反序列化 JSON C# 的最快方法
- 用数组中的空值反序列化JSON