如何使用JavaScript打印JSON对象的特定部分?
我想知道如何将文档从如何使用JavaScript打印JSON对象的特定部分?,javascript,arrays,json,Javascript,Arrays,Json,我想知道如何将文档从JSON转换为数组,并打印用户想要的数组部分。另外,如何将其放入HTML文档中,以便用户可以搜索数组的任何部分 下面是JSON { “A”:{ "1": { “1\u00ba”:[ “Semestre 1” ] }, "2": { “1\u00ba”:[ “Semestre 1” ] } }, “B”:[ ], “c”:{ "2": { “1\u00ba”:[ “Semestre 1” ] }, "3": { “1\u00ba”:[ “Semestre 1” ] }, "4
JSON
转换为数组,并打印用户想要的数组部分。另外,如何将其放入HTML
文档中,以便用户可以搜索数组的任何部分
下面是JSON
{
“A”:{
"1": {
“1\u00ba”:[
“Semestre 1”
]
},
"2": {
“1\u00ba”:[
“Semestre 1”
]
}
},
“B”:[
],
“c”:{
"2": {
“1\u00ba”:[
“Semestre 1”
]
},
"3": {
“1\u00ba”:[
“Semestre 1”
]
},
"44": {
“1\u00ba”:[
“Semestre 1”
]
},
“G6”:{
“1\u00ba”:[
“Semestre 1”
]
},
“GP98”:{
“1\u00ba”:[
“Semestre 1”
]
},
"654": {
“1\u00ba”:[
“Semestre 1”
]
},
"5556": {
“1\u00ba”:[
“Semestre 1”
]
},
"7654": {
“1\u00ba”:[
“Semestre 1”
]
}
}
}
根据您希望字符串/字符串集合的外观,您可以执行以下选项之一
将JavaScript对象或值转换为JSON字符串
printDataWithStringify = (x) => {
console.log(JSON.stringify(data[x]))
}
> {"1":{"1º":["Semestre 1"]},"2":{"1º":["Semestre 1"]}}
如果您想更进一步,可以尝试下面的代码
var printedStrings = []
checkNestedData = (x, y) => {
if (typeof(x[y]) === 'object' && !Array.isArray(x[y][property1])) {
printedStrings.push(y)
for (var property1 in x[y]) {
checkNestedData(x[y], property1)
}
} else {
printedStrings.push(x[y]);
}
}
printDataWithKeysAndValues = (x) => {
var part = data[x]
for (var property1 in part) {
checkNestedData(part, property1)
}
console.log(printedStrings)
}
> 1,1º,Semestre 1,2,1º,Semestre 1
上面的代码利用了一个循环,该循环用于遍历JavaScript对象part
是在x
键处从data
检索信息时得到的对象(在本例中,“A”
)property1
表示当前对象(part
)的键,并且是循环通过part
时,for
循环的迭代器
更进一步说,checkNestedData
检查当前对象中是否嵌套了另一个对象。如果它是一个对象(没有子对象的数组),则将y
(记住这是原始循环中的键(property1
)推入初始化的printedStrings
数组。然后执行另一个循环,然后在新循环中的当前迭代上递归运行checkNestedData
此递归回调将一直运行,直到最后一个子对象不是已填充的对象为止
一旦我们在整个对象中循环,存储我们从对象(包括嵌套对象)中提取的键和值,我们只需console.log
最后一个数组,其中包含该部分(“A”
)数据中的所有键和值
根据您希望如何格式化字符串,您可以通过插值或串联从字符串中追加/删除内容。但是这个解决方案应该获得每个键和值,并将它们作为字符串存储在数组中
var数据={
“A”:{
"1": {
“1\u00ba”:[
“Semestre 1”
]
},
"2": {
“1\u00ba”:[
“Semestre 1”
]
}
},
“B”:[
],
“c”:{
"2": {
“1\u00ba”:[
“Semestre 1”
]
},
"3": {
“1\u00ba”:[
“Semestre 1”
]
},
"44": {
“1\u00ba”:[
“Semestre 1”
]
},
“G6”:{
“1\u00ba”:[
“Semestre 1”
]
},
“GP98”:{
“1\u00ba”:[
“Semestre 1”
]
},
"654": {
“1\u00ba”:[
“Semestre 1”
]
},
"5556": {
“1\u00ba”:[
“Semestre 1”
]
},
"7654": {
“1\u00ba”:[
“Semestre 1”
]
}
}
}
PrintDataWithString=(x)=>{
log('STRINGIFY:'+JSON.STRINGIFY(数据[x]))
}
var printedStrings=[]
checkNestedData=(x,y)=>{
if(typeof(x[y])=='object'&&&!Array.isArray(x[y][property1])){
打印字符串。推送(y)
对于(x[y]中的var属性1){
检查嵌套数据(x[y],属性1)
}
}否则{
printedStrings.push(x[y]);
}
}
printDataWithKeysAndValues=(x)=>{
var部分=数据[x]
对于(部分var property1){
检查嵌套数据(零件,属性1)
}
console.log('所有键和值:'+printedStrings)
}
PrintDatawith字符串(“A”)
printDataWithKeysAndValues(“A”)
显示json和预期输出?{“A”:{“1”:{“1\u00ba”:[“Semestre 1”]},“2”:{“1\u00ba”:[“Semestre 1”]},“B”:[],“c”:{“2”:{“1\u00ba”:[“Semestre 1”]},“3”:{“1\u00ba”:[“Semestre 1”]},“44”:{“1\u00ba”:“Semestre 1”},“G6”{[“Semestre 1”]},GP98:{“1\u00ba”:[“Semestre 1”]},654:{“1\u00ba”:[“Semestre 1”]},5556:{“1\u00ba”:[“Semestre 1”]},7654:{“1\u00ba”:[“Semestre 1”]}}我想要的输出是选择一个例子,并以不同的字符串将所有ist数据分开。是否尝试选择JSON的一部分(“A”
)然后把所有的键和值打印成一个字符串数组?是的,这就是我想要记录的。你能帮我做一件事吗?我会把它当作我在回答我的问题一样。我能帮你,但为什么你不接受答案?把它当作你在回答你的问题一样。我很抱歉,我把它拿走了,看看我能不能发表更多的评论。但是它没有让我分心