我只是想获得像这样的JSON输出
{
"SW Reqs or Problem Analysis & Estimate": {
"Estimate_Days": "I",
"Performers": "am",
"Percent_Done": "so",
"Work_Done": "frustrated",
"Remaining_Work": "this",
"Comments": "won't"
},
"SW Requirements Doc ( in DOORS)": {
"Estimate_Days": "WORK",
"Performers": "PLEASE",
"Percent_Done": "HELP",
"Work_Done": "AAHHHHH",
"Remaining_Work": "HHHHHH",
"Comments": "HHHHHH!!!!"
}, ...etc
但我的json看起来像这样
{
"SW Reqs or Problem Analysis & Estimate": {
"Estimate_Days": "",
"Performers": "",
"Percent_Done": "",
"Work_Done": "",
"Remaining_Work": "",
"Comments": ""
},
"SW Requirements Doc ( in DOORS)": {
"Estimate_Days": "",
"Performers": "",
"Percent_Done": "",
"Work_Done": "",
"Remaining_Work": "",
"Comments": ""
},...etc
这是我的剧本,
$('#test').click(function(){
var content = {};
var inner = {};
$('.Data').each(function() {
var row = $(this).siblings(":first").text();
var id = $(this).attr('id').split('~');
var blah = id[0];
var html = $(this).html();
content[row] = inner;
inner[blah] = html;
});
var hey = JSON.stringify(content);
console.log(hey);
});
它遍历表中的<td>
。如果我只测试
console.log(html)
或console.log(inner[blah])
它会从<td>
输出我需要的数据,但出于某种原因,当我将其显示为空白时,我会尝试输出content
。
这条线有问题吗?
content[row] = inner;
inner[blah] = html;
这是使用密钥content
创建对象row
的正确方法,其值为另一个名为inner
的对象,其中包含密钥blah
和值html
?这不应该是这么难。我不得不遗漏一些东西。我读到你在拥有多维对象时也可以使用JSON,但是我无法弄清楚为什么字符串在&#34; Estimate_Days&#34;之后。这是空白的。请帮助。
编辑:这里有几行生成html的php循环:
foreach($group_results as $group){
echo '<tr><td class="Row_Title'.$group['Group_ID'].'">'.$group['Group_Name'].'</td>';
echo '<td class="Data" contenteditable="true" name="Estimate_Days~'.$group['Group_ID'].'" id="Estimate_Days~'.$group['Group_ID'].'"></td>';
echo '<td class="Data" contenteditable="true" name="Performers~'.$group['Group_ID'].'" id="Performers~'.$group['Group_ID'].'"></td>'; ...etc
答案 0 :(得分:2)
更新:请注意,您发布的循环代码中的td
内容似乎为空。很可能这就是为什么一切都是空白的,但它掩盖了对象引用的其他问题。
正如我所提到的,您每次都在重复使用inner
的相同实例。你真正想做的是找到每个Row_Title
单元格,然后为每个单元格填充一行,剩下的兄弟姐妹。我建议使用以下javascript(用一些示例HTML来演示)。这循环遍历每个“行”并将外部数组设置为行标题的标题,然后遍历每个类型数据的兄弟,并相应地设置该内部数组的各个属性。
$('#test').click(function(){
var content = {};
$('.Row_Title').each(function() {
var row = $(this).text();
content[row] = {};
$(this).siblings(".Data").each(function() {
var id = $(this).attr('id').split('~');
blah = id[0];
var html = $(this).html();
content[row][blah] = html;
});
})
var hey = JSON.stringify(content);
console.log(hey);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
<tr>
<td class="Row_Title">Title 1</td>
<td class="Data" id="Field1~1">Field1Value1</td>
<td class="Data" id="Field2~1">Field2Value1</td>
<tr>
<td class="Row_Title">Title 2</td>
<td class="Data" id="Field1~2">Field1Value2</td>
<td class="Data" id="Field2~2">Field2Value2</td>
</tr>
</table>
<button id="test">
Go
</button>