gpt4 book ai didi

javascript - 如何获取 JSON 对象的模式并输出到包含类型的字符串

转载 作者:行者123 更新时间:2023-11-30 12:14:11 25 4
gpt4 key购买 nike

给定 root.value 的浏览器调试器输出,在 javascript 中有两个属性

root.value
__proto__: {...}
firstname: "my name"
age: 25

我想将它解析为一个包含如下类型的 JSON 字符串

{
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Basic Info",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"age": {
"type": "number"
}
}
}

有人知道如何在 javascript 或任何我可以用来实现这一目标的框架中做到这一点吗?

注意:JSON 不是我自己创建的,它是另一个框架的输出。因此,在运行时之前,字段的类型是未知的。

 JSON.stringify(root.value);

只返回

{
{
"firstname":" my name"
},
{
"age": 25
}
}

最佳答案

您还可以使用以下功能。

function getSchema(id, obj) {

if (Array.isArray(obj)) {
var retObj = getSchema(id, obj[0]);
delete retObj.title;
return {
'title': id,
'type': 'array',
'items': retObj
};
} else if (typeof obj === 'object') {
var retObj = {
'title': id,
'type': 'object'
};
retObj.properties = {};
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
retObj.properties[prop] = getSchema(prop, obj[prop]);
delete retObj.properties[prop].title;
}
}

return retObj;
} else {
return {
'title': id,
'type': typeof obj
};
}
}

你可以像下面这样调用它

getSchema('My object', myObj)

关于javascript - 如何获取 JSON 对象的模式并输出到包含类型的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32880069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com