如何使用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”
)然后把所有的键和值打印成一个字符串数组?是的,这就是我想要记录的。你能帮我做一件事吗?我会把它当作我在回答我的问题一样。我能帮你,但为什么你不接受答案?把它当作你在回答你的问题一样。我很抱歉,我把它拿走了,看看我能不能发表更多的评论。但是它没有让我分心