如何将JavaScript对象(JSON)转换为JSV格式?

3
我希望在向我的ServiceStack服务发送ajax请求时,使用JSV而不是JSON以节省带宽。
我有以下JSON数据:
[{"201":"New York","022":"Chicago"}]

我希望将其转换为以下JSV格式:

[{201:New York,022:Chicago}]

有没有简单的方法来处理这个问题?我不确定最好的处理方式是什么;但根据我的知识/理解,我需要使用:(冒号)和,(逗号)拆分字符串并进行循环。但我担心这不考虑字符转义。是否有官方的JavaScript库可用于解析JSV格式 - 我找不到一个?


解释一下处理JSV格式的问题。 - Swetha
我不确定最好的处理方式是什么,但根据我的知识/理解,我们需要使用:(冒号)和,(逗号)来拆分字符串,并需要循环遍历它。 - Shiljo Paulson
1
你难道没看文档吗?(API) - Bergi
谢谢分享链接,但我该如何将示例JSV格式数据分配给JavaScript变量? - Shiljo Paulson
1
如果你不知道如何解析它,那就不要使用它。带宽真的是一个很大的问题吗? - user663031
1个回答

8

除了在JSV格式中少量节省字节之外,JSV是否比JSON更具优势?

JSV可用于在GET请求中发送复杂类型,而使用JSON则不可能。 这些其他答案 显示了使用JSV在GET请求中发送复杂类型的用法。

我们是否有任何JavaScript库或函数来解析JSV?

官方JSV JavaScript库 可以在此处找到。 它还包括一个在JavaScript中实现的 JsvServiceClient

我不确定处理它的最佳方法是什么,但根据我的知识/理解,我们需要使用:(冒号)和,(逗号)拆分字符串并需要循环遍历它。

使用上述库并避免自己解析它。

反序列化用法:

JSV.parse("<JSV String>");

序列化用法:

var myObject = {Id: 123, Test: [1,2,3]};
JSV.stringify(myObject);

我计划使用JSV格式来节省带宽,而不是JSON格式

除非您计划使用异常大的数据集,否则使用JSV可能会被要求发送JavaScript JSV解析库来处理请求所抵消。官方JSV库已经压缩为15KB或约8KB。请记住,Web浏览器已经内置了对JSON的支持,无需额外开销。


1
以下是 JSV.js 的 JavaScript 实现。 - mythz
1
@mythz 太棒了,显然我不知道那里有这个。这肯定使 JSV 更易于接近。如果文档中链接到这个库就更好了。 :) - Scott
1
当我收集关于JSV的散乱文档到SS维基时,我会记得这个。但是在浏览器/JavaScript中,仍应优先选择JSON,因为它可以利用浏览器本地的JSON.parse() API和JSON内省工具,这实际上意味着JSV.js只对在QueryString参数中序列化复杂对象非常有用,即使在这种情况下,当它太复杂时,最好还是将其作为JSON进行POST。 - mythz
感谢 @mythz 提供的库链接和指导。 - Shiljo Paulson
链接已失效 :( - Lomithrani
@Lomithrani 看起来已经从主分支中删除,但仍然在此处可用 - Scott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接