JSON.stringify保存数据时无法执行json_decode

时间:2014-04-02 07:09:28

标签: javascript php

图书馆地址

https://github.com/douglascrockford/JSON-js

HTML

<input name="title[]" type="text" value="a1">
<input name="content[]" type="text" value="a2">
<input name="title[]" type="text" value="b1">
<input name="content[]" type="text" value="b2">
<input id="result" type="text">

的JavaScript

var result = [];

$('[name="title[]"]'].each(function(index) {
    content = $('[name="content[]"]').eq(index).val();
    result.push({title: $(this).val(), content: content});
});

$('#result').val(JSON.stringify(result));

当我保存它时,我在数据库中得到了这个

"[{\"title\":\"a\",\"content\":\"a2\"},{\"title\":\"b\",\"content\":\"b2\"}]"

当我var_dump json_decode时,我得到了

string '[{"title":"a","content":"a2"},{"title":"b","content":"b2"}]' (length=59)

如何获得正确的json格式

PHP

我使用Laravel作为框架,这个字段名为data

public function setDataAttribute($value) {
    $this->attributes['data'] = json_encode($value);
}

public function getDataAttribute($value) {
    return json_decode($value);
}

1 个答案:

答案 0 :(得分:1)

您已在json string字段中发布了result,因此在将数据保存到数据库之前不需要json_code

public function setDataAttribute($value) {
    $this->attributes['data'] = $value;
} 

它可以正常工作..

这是json编码数据:

 '[{"title":"a","content":"a2"},{"title":"b","content":"b2"}]'

再次编码json字符串

json_encode('[{"title":"a","content":"a2"},{"title":"b","content":"b2"}]');

然后结果

"[{\"title\":\"a\",\"content\":\"a2\"},{\"title\":\"b\",\"content\":\"b2\"}]"