我想从json字符串创建键值对:
string json = "[{\"Job\": \"Step\",\"Id\": \"D:\\\\file.CATPart\",\"Source\": \"V5\"},{\"Job\": \"Step\",\"Id\": \"D:\\\\file1.CATPart\",\"Source\": \"V5\"}]";
var jsonObj = new JavaScriptSerializer().Deserialize<List<Arguments>>(json);
foreach (var obj in jsonObj)
{
jobtype = obj.Job;
SelectedId = obj.Id;
source = obj.Source; }
我当前正在反序列化到列表,但希望它是一个键值对,以避免在添加更多参数等方面出现问题。如何在不使用json.net或任何其他外部dll的情况下做到这一点?
答案 0 :(得分:0)
正如@marsze所说,您必须编写自己的deserializer
。
您可以使用List<Dictionary<string, object>>
存储参数。
答案 1 :(得分:-1)
一个不好的解决方案是手动处理字符串,方法是遍历各行,然后使用string.split(':')。然后,您可以使用正则表达式清除所有非字母和数字,并将其插入您选择的枚举中。记住要小心处理嵌套和数组,(疯狂地进行单元测试)。
将占用大量资源,但可以完成工作。花费了两个星期的开发时间来正确实施和测试。
或者您可以从GitHub存储库复制已经有一些不错的解决方案的代码。也许可以反编译Newtonsoft?