Json在sessionStorage中包含对象数组

时间:2013-12-31 09:57:23

标签: javascript asp.net wcf

大家好我正在创建一个Json并将其添加到Sessionstorage,如下所示

<script type="text/javascript">
    function addMoreProducts() {
        if (sessionStorage.getItem("empData") === null) {
            var empInformation = {
                "employees": [
                { "firstName": "John", "lastName": "Doe" },
                { "firstName": "Anna", "lastName": "Smith" },
                { "firstName": "Peter", "lastName": "Jones" }
                ]
            }
            var x = JSON.stringify(empInformation);
            sessionStorage.setItem("empData", x);
        }
        else {
            if (sessionStorage.getItem("empData") != null) {
                var empInformation = {
                    "employees": [
                    { "firstName": "John1", "lastName": "Doe1" },
                    { "firstName": "Anna1", "lastName": "Smith1" },
                    { "firstName": "Peter1", "lastName": "Jones1" }
                    ]
                }
                var v = sessionStorage.getItem("empData").toString();
                var jParse = JSON.stringify(v);
                var jparse1 = JSON.stringify(empInformation);
                var arrayOfObjects = [jParse, jparse1];

            }
            var vparse = JSON.stringify(arrayOfObjects);
            var vparse1 = JSON.parse(vparse);
            sessionStorage.removeItem('empData');
            sessionStorage.setItem("empData", vparse);
        }

    }
</script>

但是当我在分配数据后从sessionStorage检索数据时,这并没有给我正确的json格式可以帮助我。这是我得到的格式

  

“[” \ “{\\” 员工\\ “:[{\\” 名字\\ “:\\” 约翰\\”,\\ “姓氏\\”:\\ “Doe的\\” },{\\ “名字\\”:\\ “安娜\\”,\\ “姓氏\\”:\\ “史密斯\\”},{\\ “名字\\”:\\“彼得\ \ “\\ ”姓氏\\“:\\ ”琼斯\\“}]} \ ”“, ”{\“ 员工\ ”:[{\“ 名字\ ”:\“ John1 \”,\“姓氏\ “:\” DOE1 \ “},{\” 名字\ “:\” Anna1 \”,\ “姓氏\”:\ “Smith1 \”},{\ “名字\”:\ “Peter1 \”,\ “姓氏\”:\ “Jones1 \”}]} “]”

当我在控制台中观看时。此外,我正在使用restful服务,其中我的服务包含datatable作为参数如何将此json对象作为DataTable

传递给该方法

1 个答案:

答案 0 :(得分:0)

这实际上是一个非常广泛讨论的问题:

这是microsof在article

中提出的内容

如果此函数导致JavaScript解析器错误(例如“SCRIPT1014:无效字符”),则输入文本不符合JSON语法。要更正错误,请执行以下操作之一: 修改text参数以符合JSON语法。有关更多信息,请参阅JSON对象的BNF语法表示法。 例如,如果响应是JSONP格式而不是纯JSON,请在响应对象上尝试此代码:

var fixedResponse = response.responseText.replace(/\\'/g, "'");
var jsonObj = JSON.parse(fixedResponse);