0

我应该在一个项目中为 IE(专门)设置 JSON 格式的数据解析,我知道这个库,但数据传输将是一个重大问题,我想尽量减少移动的字节数。

我将使用的 JSON 对象非常小而且非常扁平,用人类的术语来说,最多 3 个深度级别可能有 30 行。

有没有更好的方法来解决这个问题?RegEx 产生的问题往往比它解决的问题多。关于如何挑选连接到名为shabong的节点的值(或一组值)的任何其他想法?

我已经习惯了XDocumentC# 中的类,其中只需要指定后代的名称即可获取标签中包含的一堆信息。类似的解决方案将是可取的。(老狗,新花样,呵呵。)

4

1 回答 1

1

如果你可以保证数据是安全的,那么你可以使用eval构造Function函数来解析数据。

这是因为 JSON 数据结构和值与 JavaScript 文字符号中的数据结构和值非常相似,因此您通常可以将数据评估为实际的 JavaScript 表达式。


使用eval

var parsed = eval("(" + myjsondata + ")");

使用Function

var parsed = (new Function("return " + myjsondata))();

同样,这只是在您绝对确定所传递数据的完整性的情况下。因为您将其视为程序的一部分,所以任何替换有效数据的恶意代码都将被执行。

Function版本提供了一点点安全性,因为它是在全局范围内调用的,因此任何恶意代码都无法访问局部变量。总体而言,这应该不会带来什么舒适感。


除了上述解决方案之外,您始终可以创建自己的序列化来满足您的数据需求。如果数据足够简单,它可以为您提供为您的自定义序列化编写一个非常短且快速的解析器的能力。

于 2012-11-27T15:02:52.477 回答