我想从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的情况下执行此操作?
正如@marsze所说,你必须写自己的deserializer
。您可以使用List<Dictionary<string, object>>
存储参数。
一个糟糕的解决方案是手动处理字符串,通过遍历行,然后使用string.split(':')。然后,您可以使用正则表达式清除所有非字母和数字,并将其插入您选择的可枚举中。记得小心处理嵌套和数组(单元测试就像疯了一样)。
将是资源密集型,但它将完成这项工作。并且花费两周的开发时间来正确实施和测试。
或者你可以从已经有一些很好的解决方案处理这个的GitHub repos中复制代码。可能会反编译牛顿软件吗?