繁体   English   中英

从JSON字符串获取键值对,而无需使用json.net

[英]Get key value pair from JSON string without using json.net

我想从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的情况下执行此操作?

正如@marsze所说,您必须编写自己的deserializer 您可以使用List<Dictionary<string, object>>来存储参数。

一个糟糕的解决方案是通过遍历各行来手动处理字符串,然后使用string.split(':')。 然后,您可以使用正则表达式清除所有非字母和数字,并将其插入您选择的枚举中。 记住要小心处理嵌套和数组,(疯狂地进行单元测试)。

这将是资源密集型的,但可以完成工作。 并花费了两个星期的开发时间来正确实施和测试。

或者,您可以从GitHub存储库复制已经有一些不错的解决方案的代码。 也许反编译Newtonsoft?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM