如何使用 JSON 格式创建特定类型的 Javascript 对象
How do I create a Javascript object of a specific type using JSON format?
我想将地图边界存储在JSON对象中。 对于代码完成,我使用 JSDoc 声明了对象:
/**
* @name MapBounds
* @class MapBounds
* This class represents a map boundary definition.
*
* @property {number} minLat Specifies the minimum latitude of the boundary.
* @property {number} minLon Specifies the minimum longitude of the boundary.
* @property {number} maxLat Specifies the maximum latitude of the boundary.
* @property {number} maxLon Specifies the maximum longitude of the boundary.
*/
当需要创建 MapBounds 对象时,我的代码看起来与此类似(此示例没有真正的纬度/纬度值):
var newMapBounds = MapBounds( {minLat: 50, minLon: 50, maxLat: 100, maxLon: 100} );
我使用 JSON 指定对象,然后将其转换为我需要的类型。 有没有更好的方法可以做到这一点?
谢谢。
以下是使用该格式构造 Json 对象的方法(它只是一个 JavaScript 对象文字)
{
minLat: 0, // Specifies the minimum latitude of the boundary
minLon: 0, // Specifies the minimum longitude of the boundary
maxLat: 0, // Specifies the maximum latitude of the boundary
maxLon: 0 // Specifies the maximum longitude of the boundary
}
在将 Json 对象提交到 Web 服务时,必须将 Json 对象"映射"到类是非常典型的。 如果您将 JSON 对象传递给请求并提供对象类型作为 Web 服务参数,某些框架(即 MVC .NET)将为您执行此操作。 尽管如此,上面的格式就是你在 JavaScript 方面表示这种结构的方式。
编辑:从JSON对象到服务器端代码上的指定类的这种类型的映射要么由您在服务器上使用的框架(即.NET/MVC)发生,要么在服务器上手动执行。 将 JSON 对象提交到服务器后,服务器端代码将接管,您不需要在客户端(即 JavaScript)上记录该侧内容。
首先,JavaScript 中没有类。对象是通过调用函数来初始化对象的,继承基于原型链。见 https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Inheritance_and_the_prototype_chain
JSON 只能存储没有原型链的普通对象,即所有用 JSON 编码的对象都只能继承自Object
。
因此,可以得出结论,从JSON创建某些类型对象的唯一方法是使用自编写的函数来处理反序列化JSON产生的普通对象。然后,自编写的函数将使用new …
调用构造函数来重建原型链。这似乎是你已经在做的事情,这就是你要走的路。
您可以使用一些执行上述步骤的框架来避免手动处理序列化。
- javascript解释器如何理解变量的数据类型
- 可变大小的JavaScript字符串如何成为基元类型
- 为什么不'我们在javascript中使用函数参数的数据类型
- Javascript 可选类型提示
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 如果连接类型为none,则Javascript Function Only警报
- W3验证器->使用<脚本类型=“;text/javascript”>在html的正文中
- 如何使用javascript获取从指定文件夹创建的所有文件的名称、大小、类型和日期
- 什么是上下文中静态类型javascript的示例,以更好地进行单元测试
- 什么是非法调用类型JavaScript中的错误
- 自定义对象/类型 Javascript
- 记事本++:行注释的类型(javascript 和 html),具体取决于 TAG
- 验证表单编号类型 Javascript
- 检查类型Javascript
- 嵌套具有属性回退的同类型javascript对象
- Gmail类型javascript不允许重复无效字符
- 函数作为返回类型javascript
- 最快的方法来检查对象键值类型(javascript)
- 引用数据类型 JavaScript
- 文件类型- Javascript:匹配文件类型时的错误