在不使用json.net的情况下从JSON字符串获取键值对

问题描述 投票:0回答:2

我想从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;    }

我目前正在反序列化到一个列表,但希望它是一个akey值对,以避免添加更多参数等问题。我怎么能在没有使用json.net或任何其他外部DLL的情况下执行此操作?

c# json key-value javascriptserializer
2个回答
0
投票

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


-1
投票

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

将是资源密集型,但它将完成这项工作。并且花费两周的开发时间来正确实施和测试。

或者你可以从已经有一些很好的解决方案处理这个的GitHub repos中复制代码。可能会反编译牛顿软件吗?

© www.soinside.com 2019 - 2024. All rights reserved.