Javascript 在textarea中使用js/jquery将JSON字符串格式化为可读格式

Javascript 在textarea中使用js/jquery将JSON字符串格式化为可读格式,javascript,jquery,json,stringify,Javascript,Jquery,Json,Stringify,我有一个包含对象的js变量。我使用jquery将该对象中的数据传递给html。我还通过JSON.stringify传递变量,因此代码如下所示: $("#textarea1").val(JSON.stringify(myVarData, null, "\t")); "report_data":"{"subjects":[{"subject_name":"ENGLISH","parent_subject_name":null,"teacher_id":39,"initials":"A.A.F","

我有一个包含对象的js变量。我使用jquery将该对象中的数据传递给html。我还通过JSON.stringify传递变量,因此代码如下所示:

$("#textarea1").val(JSON.stringify(myVarData, null, "\t"));
"report_data":"{"subjects":[{"subject_name":"ENGLISH","parent_subject_name":null,"teacher_id":39,"initials":"A.A.F","use_for_grading":true,"marks":{"MID-TERM 1 2018":{"mark":87,"grade_weight":100,"grade":"A"}},"overall_mark":"87","overall_grade":"A","remarks":"Excellent"},{"subject_name":"MATHEMATICS","parent_subject_name":null,"teacher_id":40,"initials":"B.K.K","use_for_grading":true,"marks":{"MID-TERM 1 2018":{"mark":80,"grade_weight":100,"grade":"A"}},"overall_mark":"80","overall_grade":"A","remarks":"Excellent"},
这个问题有两个方面

在中,数据被括在花括号{}中,因为它仍然是JSON格式的-在将数据发送到服务器之前,如何删除它们?基本上是纯文本。 数据的格式也很好

{ "property":value, 
  "property":value,
  "property":value }
如果我有简单的数据,这没关系,但在其中一个属性中,我有一个如下所示的值:

$("#textarea1").val(JSON.stringify(myVarData, null, "\t"));
"report_data":"{"subjects":[{"subject_name":"ENGLISH","parent_subject_name":null,"teacher_id":39,"initials":"A.A.F","use_for_grading":true,"marks":{"MID-TERM 1 2018":{"mark":87,"grade_weight":100,"grade":"A"}},"overall_mark":"87","overall_grade":"A","remarks":"Excellent"},{"subject_name":"MATHEMATICS","parent_subject_name":null,"teacher_id":40,"initials":"B.K.K","use_for_grading":true,"marks":{"MID-TERM 1 2018":{"mark":80,"grade_weight":100,"grade":"A"}},"overall_mark":"80","overall_grade":"A","remarks":"Excellent"},
如何将该值数据格式化为易于阅读,如上面1所示?是否可以仅从值中选择我想要的内容?我尝试在stringify之后使用JSON.parse,但结果得到了[object]


注意,这不是重复的,因为问题是关于将对象复制到文本框。在我问题的第一部分中,我希望数据不在花括号中,它不再是JSON。这个解决方案提出了我已经在使用的方法。

1您可以使用javascript子字符串方法删除花括号{}

例如:JSON.stringifymyVarData.substring1,JSON.stringifymyVarData.length-1

2要在值对象中选择属性,请通过父对象解析选择属性,然后执行stringify

例如:打印第一个主题的标记 JSON.stringifymyVarData.report_data.subjects[0]。标记 var a={报告数据:{受试者:[{受试者姓名:英语,家长受试者姓名:null,教师id:39,首字母缩写:a.a.F,用于评分:true,分数:{期中1 2018:{分数:87,分数权重:100,分数:a},总体分数:87,总体分数:a,备注:优秀,{受试者姓名:数学,家长受试者姓名:null,教师id:40,首字母缩写:B.K.K,分数:true,用于评分:{2018年期中1期:{成绩:80分,成绩\体重:100分,成绩:A}},总体评分:80分,总体评分:A,备注:优秀}} console.logJSON.stringifya.replace/[\[\]']+/g、.replace/[\{\}']+/g、, var final=JSON.stringifya.replace/[\[\]']+/g、.replace/[\{\}']+/g、,; $textarea1.valJSON.stringifyfinal,空,\t;
JSON.parse的可能重复是从JSON字符串中获取JS对象。@31请不要重复,因为该问题的解决方案使用了stringify和stringify上的缩进,我已经在我的问题中使用了。这是特定于删除花括号。@Clint\u a-注释中说可能重复。如果其他人发现它,则是完全相同的重复,他们也会投票结束这个问题。否则,有人会回答。谢谢。你的答案的第一部分解决了我的第一个问题。我将使用for循环测试第二部分,因为我不想硬编码我想选择什么,因为主题数是可变的。谢谢。这实际上是我在我的任务中需要的。很高兴帮助你: