我使用 GUI 创建页面,将其保存为 JSON 文件,然后由 CMS 读取该 JSON 文件。
问题:我想修改我创建的对象,但代码被 super 最小化,我找不到该对象。
用一个例子来清楚地说明。我创建一个带有名为“BUTTON”的按钮的页面。它以如下 JSON 格式导出:
"S":[
{
"Y":"h",
"b":1,
"nm":"BUTTON1",
"f":"1,0,1,0",
"c":"FFFFFF,000000",
"l":"2020,1840,4140,8820",
"n":"Helvetica",
"h":192,
"L":0,
"i":0,
"j":1,
"vj":1,
"t":"Button",
"Act":[
{
"e":"OnClick",
"s":"\r\ngraphicReplace(\"Public/essai/vue0\");"
}
]
}
]
它会在 CMS 中显示一个按钮。但是,如果我尝试“alert(S.t);”之类的内容,我会收到“ReferenceError:S 未定义”。
我想做的是找到一种方式来表达: 找到一个对象,其属性之一等于“Button”。给我名字。
这样我就可以使用 JS 更改其位置、大小等。
<小时/>完整的 JSON
{
"PG":{
"v":5,
"h":20480,
"w":25600,
"pc":"FFFFFF",
"de":"",
"st":0,
"Act":[
],
"S":[
{
"Y":"h",
"b":1,
"nm":"BUTTON1",
"f":"1,0,1,0",
"c":"FFFFFF,000000",
"l":"2020,1840,4140,8820",
"n":"Helvetica",
"h":192,
"L":0,
"i":0,
"j":1,
"vj":1,
"t":"Button",
"Act":[
{
"e":"OnClick",
"s":"\r\ngraphicReplace(\"Public/essai/vue0\");"
}
]
}
]
} }
最佳答案
您的 JSON 包含一个数组,该数组又包含其余键。您可以看到,在 'S'
键之后,后面跟着括号 []
来表明这一点。
所以你(可能)需要使用..S[0].t
您可以通过索引访问数组,如[0]
,也可以通过“名称”访问键,如'.Act'
。
从我上面看到的应该是 json.PG.S[0].t
其中 json
表示实际包含该 JSON 的变量的名称,
var json = {
"PG": {
"v": 5,
"h": 20480,
"w": 25600,
"pc": "FFFFFF",
"de": "",
"st": 0,
"Act": [
],
"S": [{
"Y": "h",
"b": 1,
"nm": "BUTTON1",
"f": "1,0,1,0",
"c": "FFFFFF,000000",
"l": "2020,1840,4140,8820",
"n": "Helvetica",
"h": 192,
"L": 0,
"i": 0,
"j": 1,
"vj": 1,
"t": "Button",
"Act": [{
"e": "OnClick",
"s": "\r\ngraphicReplace(\"Public/essai/vue0\");"
}]
}]
}
}
alert(json.PG.S[0].t);
例如假设:
var json = {
"PG":{
"v":5,
"h":20480,
"w":25600,
"pc":"FFFFFF",
"de":"",
"st":0,
"Act":[
],
"S":[
{
"Y":"h",
"b":1,
"nm":"BUTTON1",
"f":"1,0,1,0",
"c":"FFFFFF,000000",
"l":"2020,1840,4140,8820",
"n":"Helvetica",
"h":192,
"L":0,
"i":0,
"j":1,
"vj":1,
"t":"Button",
"Act":[
{
"e":"OnClick",
"s":"\r\ngraphicReplace(\"Public/essai/vue0\");"
}
]
}
]
} }
关于javascript - 如何在 Javascript 中找到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30754656/