繁体   English   中英

如何在C#中将未知的JSON字符串反序列化为某些对象

[英]How to deserialize in C# an unknown JSON string to some Object

我需要在C#中解析一个以JSON格式构建的字符串(确切地说,我需要解析Knockout数据绑定的绑定参数)。 我翻阅了html文件,然后提取了绑定。 我想修改每个绑定(逐个字符串),但是我很难解析字符串,因为我真的不知道每个绑定在哪里停止而另一个在哪里开始。

例如:

data-bind="text:'ggggg',event:{mouseover:x=function(){alert(1);return 'd,y'}}"

将导致以下字符串:

"text:'ggggg',event:{mouseover:x=function(){alert(1);return 'd,y'}}"

我想通过以下方式修改字符串:

newString= "text('gggg'),event(mouseover(x=function(){alert(1);return 'd,y'}))"

我发现最好的方法是通过JSON反序列化字符串,然后对我来说,更容易访问每个绑定元素。 我使用C#编写代码,但是由于我遍历html文件并且每个数据绑定都是不同的,并且可以包含不同数量和类型的属性,因此我希望拥有一个可以反序列化的通用对象。 我签出了DataContractJsonSerializer,但看不到它如何解决我的问题。 你能建议我最适合我的情况吗? 玛丽

您可以使用以下方法进行操作:

var obj = ko.bindingProvider.instance.getBindings(yourDomElement,
                                                ko.contextFor(yourDomElement));
alert(JSON.stringify(obj));

然后使用obj做任何您想做的事情。

小提琴

但是...嗯...不要!

暂无
暂无

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

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