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.onclick
XXX代表那个对象
如下图所示


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

7、能输出但是对象的属性是否还在,假如对象有name属性,那么我们试试p.name
function 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,第一个是字符串形式的,第二个输出的是原来的对象

