我正在运行ajax查询并返回JSON,其中一个结果是一个名为image.commenteg 的字段
test~63~Dave Sanders~http://graph.facebook.com/998433599/picture?type=large~Dave Sanders~9 minutes ago
Run Code Online (Sandbox Code Playgroud)
我~用作分隔符
可能有多个类似的数据集由----in 分隔,image.comment因此要解析数据并将其添加到我正在使用的DOM中:
if(image.comment){
html += '<div class="msgs_holder'+image.list_id+'">';
// split comment at ----
var comString = image.comment;
var comArray = comString.split("----");
var lengthArray = comArray.length,
element = null;
for (var i = 0; i < lengthArray; i++) {
element = comArray[i];
// split indiv comment at ~
var comUserString = element;
var comUserArray = comUserString.split("~");
html += '<div class="msgs_row"><div class="msgs_pic"><a href="/'+comUserArray[4]+'"><img src="'+comUserArray[3]+'"></a></div>';
html += '<div class="msgs_comment"><a href="/'+comUserArray[4]+'" style="text-decoration:none;"><span class="msgs_name">'+comUserArray[2]+'</span></a> '+comUserArray[0]+'<br><span class="msgs_time" title="'+comUserArray[5]+'">'+comUserArray[5]+'</span></div></div>';
}
html += '</div>';
}
Run Code Online (Sandbox Code Playgroud)
但页面无法加载,firefox firebug告诉我: allocation size overflow
这只是发生在JSON行那里是在数据comment列
我怀疑有些可能无限循环但看不到它
我检查了查询,它运行正常,所以不是这样
这是在js中爆炸的最佳方式吗?
有任何想法吗?
更多信息我这样做的原因是它是一个更大的查询.图像加载到每个图像下带有注释的页面.所以我将注释加载到要解析显示的列中.
例:
Image 1 Image 2 Image 3 etc etc etc
hey i think its great!
hey back! me too
I'm not sure
Run Code Online (Sandbox Code Playgroud)
更多信息2此数据来自MySQL查询,例如
select w.img_width, w.img_height, w.prod_pic_url as preview3,
GROUP_CONCAT(ww.comment,'~', h.user_id,'~', h.name,'~',
h.live_prof_pic,'~', h.twovo_url,'~', time_ago(ww.dateadded) SEPARATOR '----') AS comment
from tableName where blah=blah
Run Code Online (Sandbox Code Playgroud)
GROUP_CONCAT是上面提到的评论部分
因此,要将JSON用于数据中的数据,这可能吗?如果是这样的话?
示例返回数据:
"preview3":"http:\/\/myurl.com\/wish_images\/production\/3578.jpg","comment":"test~63~Dave Sanders~http:\/\/graph.facebook.com\/Dave Sanders\/picture?type=large~Dave Sanders~39 minutes ago"},{"item_id":"3559","numComms":"0","numLikes":"0"... etc etc
Run Code Online (Sandbox Code Playgroud)
这不适合评论,因此我将尝试编写我认为人们在使用JSON而不是字符串方面所说的内容:
这个:
test~63~Dave Sanders~http://graph.facebook.com/998433599/picture?type=large~Dave Sanders~9 minutes ago
Run Code Online (Sandbox Code Playgroud)
可能成为这样:
[
{
'name': 'test',
'id': 63,
'name': 'Dave Sanders',
'url': 'http://graph.facebook.com/998433599/picture?type=large',
'when': '9 minutes ago'
// other properties
},
{
// the next one
},
{
// etc.
}
]
Run Code Online (Sandbox Code Playgroud)
它可能看起来更多的工作,但你可以使用一些JSON库的PHP(我猜,因为你使用术语"爆炸")在服务器上构建JSON.然后,您返回的内容已经在基于浏览器的客户端应用程序的表单中,无需额外工作即可使用.我发现很难想象这最终会比你尝试用字符串操作做更多的工作,并且JSON可能不那么脆弱.