序列化javascript中的“不带冒号的对象”,而不会丢失内部函数

时间:2019-02-14 06:00:31

标签: javascript node.js

我有一个看起来像JSON的API响应,但事实并非如此。

[ { detection:
 FaceDetection {
   _imageDims: [Dimensions],
   _score: 0.8957952857017517,
   _classScore: 0.8957952857017517,
   _className: '',
   _box: [Box] },
landmarks:
 FaceLandmarks68 { _imgDims: [Dimensions], _shift: [Point], _positions: [Array] },
unshiftedLandmarks:
 FaceLandmarks68 { _imgDims: [Dimensions], _shift: [Point], _positions: [Array] },
alignedRect:
 FaceDetection {
   _imageDims: [Dimensions],
   _score: 0.8957952857017517,
   _classScore: 0.8957952857017517,
   _className: '',
   _box: [Box] },
descriptor:
 Float32Array [
   -0.1426914483308792,
   0.08866042643785477,
]

如您所见,人脸检测不是键值对,而是函数。 (这是从这里了解的:No colon after property name in object declaration, is it valid?)。但是,当我尝试序列化它时,它将避免使用这些函数,而仅采用键值对。那么,如何在不丢失任何内容的情况下序列化呢?

到目前为止,我尝试过的事情是JSON.stringify(),它显然不起作用。其他是NPM软件包https://www.npmjs.com/package/serialize-javascript

那么,如何在不丢失内部函数的情况下序列化此对象?

1 个答案:

答案 0 :(得分:0)

如果您控制该API端点,只需不要执行此操作。如果不这样做,那么也许您应该问问谁提出了这个建议,他们是如何使用它的(肯定应该有可以/知道如何使用这种格式的工具)。如果您不能执行任何操作,则API响应 ,将其作为一个整体,保留格式并按需要保存(文件,数据库等) )。