js,jquery中如何传入对象,解析对象
1、首先我们在js中直接定义一个字典对象,如下我们定义一个js字典对象var o={'zhang':['12'],'lili':['1'],'zhao':['15']}

2、我们写个简单的方法输出这个对象function test(o){console.log(o)}调用该方法test(o)我们会发现输出了该字典对象

3、但是有时候我们需要直接将后端得到的对象传给方法例如我将一个django中渲染好的对象传给js方法,首先我们在django模版中定义一个按钮,传入对象p,我这里的p对象是django模版渲染出的<div> <a class="weui_btn weui_btn_primary" onclick="objtest({{ p }})">测试对象</a></div>

4、下面我们在js部分定义一个方法function objtest(o) { console.log(o) 输出对象}

5、当我们点击输出按钮的时候,确报错,Uncaught ReferenceError: XXX is not defined at HTMLAnchorElement.onclickXXX代表那个对象如下图所示


6、这个时候我们修改模版中的对象传入属性,把它改成字符串形式传入'{{ p }}'<div> <a class="weui_btn weui_btn_primary" onclick="objtest('{{ p }}')">测试对象</a></div>这个时候我们在点击按钮,发现可以正常输出该对象了。

7、能输出但是对象的属性是否还在,假如对象有name属性,那么我们试试p.namefunction objtest(o) { console.log(o.name)}结果发现输出undefined,可以看出当我们使用‘’的时候已经把对象属性去了


8、有时候我们需要解析一个json类型的字符串对象,我们可以使用JSON.parse(JSON.stringify(obj))里面的JSON.stringify(obj)是将对象转化为json的字符串,然后我们可以再用JSON.parse解析出来如下我们定义个方法function objtest() { var o ={'zhangsan':[1],'lili':[2]} var to = JSON.stringify(o) var too= JSON.parse(to) console.log(to,too)}如下图2,第一个是字符串形式的,第二个输出的是原来的对象

