Javascript 递归地循环处理JSON数据

Javascript 递归地循环处理JSON数据,javascript,php,jquery,json,Javascript,Php,Jquery,Json,在这方面的帮助下,我创建了一个。递归循环使用JSON原始数据,但从PHP数组读取JSON数据时不起作用 var notes = '<?php echo json_encode($notes); ?>'; console.log(notes); // displays JSON raw data (used in jsfiddle) var注释=”; console.log(注释);//显示JSON原始数据(在JSFIDLE中使用) 在遍历数据之后,我希望根据类型获得特定的输出:

在这方面的帮助下,我创建了一个。递归循环使用JSON原始数据,但从PHP数组读取JSON数据时不起作用

var notes = '<?php echo json_encode($notes); ?>';

console.log(notes); // displays JSON raw data (used in jsfiddle)
var注释=”;
console.log(注释);//显示JSON原始数据(在JSFIDLE中使用)
在遍历数据之后,我希望根据类型获得特定的输出:主题、主题、副标题、概念、段落


如何解决此问题?

删除引号:
var notes=

引号使其成为字符串,而不是对象

如果要将其写入字符串,则需要将其从字符串转换为JSON:

var notes = JSON.parse('<?php echo json_encode($notes); ?>');
可以使用点符号或括号符号访问对象属性。点表示法通常被认为是更干净的,尽管它有更多的限制。考虑这个对象:

var myObj = {
  foo : "some value",
  bar : "some other value",
  "1&^@" : "this value's key is invalid!"
};
要访问具有有效javascript变量名的键的属性,可以使用如下点表示法:

console.log(myObj.foo); //"some value"
console.log(myObj.bar); //"some other value"
第三个属性不会以这种方式工作。由于它包含无效字符,因此必须将其创建为字符串,并且必须作为字符串访问,因此请使用括号表示法:

console.log(myObj['1&^@']);
括号表示法的另一个很酷的地方是,可以使用变量作为键名。(另请参见上面的for循环)


这是因为
foo
的值为
'bar'
,因此
myObj[foo]
相当于
myObj['bar']
myObj.bar
删除引号:
var notes=

引号使其成为字符串,而不是对象

如果要将其写入字符串,则需要将其从字符串转换为JSON:

var notes = JSON.parse('<?php echo json_encode($notes); ?>');
可以使用点符号或括号符号访问对象属性。点表示法通常被认为是更干净的,尽管它有更多的限制。考虑这个对象:

var myObj = {
  foo : "some value",
  bar : "some other value",
  "1&^@" : "this value's key is invalid!"
};
要访问具有有效javascript变量名的键的属性,可以使用如下点表示法:

console.log(myObj.foo); //"some value"
console.log(myObj.bar); //"some other value"
第三个属性不会以这种方式工作。由于它包含无效字符,因此必须将其创建为字符串,并且必须作为字符串访问,因此请使用括号表示法:

console.log(myObj['1&^@']);
括号表示法的另一个很酷的地方是,可以使用变量作为键名。(另请参见上面的for循环)


这是因为
foo
的值为
'bar'
,因此
myObj[foo]
相当于
myObj['bar']
myObj.bar
删除引号:
var notes=

引号使其成为字符串,而不是对象

如果要将其写入字符串,则需要将其从字符串转换为JSON:

var notes = JSON.parse('<?php echo json_encode($notes); ?>');
可以使用点符号或括号符号访问对象属性。点表示法通常被认为是更干净的,尽管它有更多的限制。考虑这个对象:

var myObj = {
  foo : "some value",
  bar : "some other value",
  "1&^@" : "this value's key is invalid!"
};
要访问具有有效javascript变量名的键的属性,可以使用如下点表示法:

console.log(myObj.foo); //"some value"
console.log(myObj.bar); //"some other value"
第三个属性不会以这种方式工作。由于它包含无效字符,因此必须将其创建为字符串,并且必须作为字符串访问,因此请使用括号表示法:

console.log(myObj['1&^@']);
括号表示法的另一个很酷的地方是,可以使用变量作为键名。(另请参见上面的for循环)


这是因为
foo
的值为
'bar'
,因此
myObj[foo]
相当于
myObj['bar']
myObj.bar
删除引号:
var notes=

引号使其成为字符串,而不是对象

如果要将其写入字符串,则需要将其从字符串转换为JSON:

var notes = JSON.parse('<?php echo json_encode($notes); ?>');
可以使用点符号或括号符号访问对象属性。点表示法通常被认为是更干净的,尽管它有更多的限制。考虑这个对象:

var myObj = {
  foo : "some value",
  bar : "some other value",
  "1&^@" : "this value's key is invalid!"
};
要访问具有有效javascript变量名的键的属性,可以使用如下点表示法:

console.log(myObj.foo); //"some value"
console.log(myObj.bar); //"some other value"
第三个属性不会以这种方式工作。由于它包含无效字符,因此必须将其创建为字符串,并且必须作为字符串访问,因此请使用括号表示法:

console.log(myObj['1&^@']);
括号表示法的另一个很酷的地方是,可以使用变量作为键名。(另请参见上面的for循环)


这是因为
foo
的值为
'bar'
,所以
myObj[foo]
相当于
myObj['bar']
myObj.bar
,在@m59的帮助下,我成功地迭代了JSON数据并获得了特定的数据。这是我的建议

if(obj['type']=='Subject'){
body+='SubjectId:'+obj['id']+'
'; 正文+='SubjectContent:'+obj['content']+'
'; var topics=obj['children']; var主题; for(主题中的主题){ 正文+='topicId:'+主题[topic]['id']+'
; 正文+='topicContent:'+主题[主题]['content']+'
'; 正文+='topicType:'+主题[topic]['type']+'
'; } }
在@m59的帮助下,我成功地迭代了JSON数据并获得了特定的数据。这是我的建议

if(obj['type']=='Subject'){
body+='SubjectId:'+obj['id']+'
'; 正文+='SubjectContent:'+obj['content']+'
'; var topics=obj['children']; var主题; for(主题中的主题){ 正文+='topicId:'+主题[topic]['id']+'
; 正文+='topicContent:'+主题[主题]['content']+'
'; 正文+='topicType:'+主题[topic]['type']+'
'; } }
在@m59的帮助下,我成功地迭代了JSON数据并获得了特定的数据。这是我的建议

if(obj['type']=='Subject'){
body+='SubjectId:'+obj['id']+'
'; 正文+='SubjectContent:'+obj['content']+'
'; var topics=obj['children']; var主题; for(主题中的主题){ 正文+='topicId:'+主题[topic]['id']+'
; 正文+='topicContent:'+主题[主题]['content']+'
'; body+='topicType:'+主题[topic]['t