我有一个看起来像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
那么,如何在不丢失内部函数的情况下序列化此对象?
答案 0 :(得分:0)
如果您控制该API端点,只需不要执行此操作。如果不这样做,那么也许您应该问问谁提出了这个建议,他们是如何使用它的(肯定应该有可以/知道如何使用这种格式的工具)。如果您不能执行任何操作,则API响应 是 ,将其作为一个整体,保留格式并按需要保存(文件,数据库等) )。