我在一个页面上有一个表单,大部分都是纯html。表单的一部分使用javascript生成一个相当复杂的多维对象。通常情况下,如果我有一个变量要放入POST请求中,我会在表单中附加一个<input type="hidden" />
,但如果我尝试将对象序列化为json,json查询中会有很多逗号,这些逗号会破坏表单的html。
即
<input type="hidden" name="test" value="[{"fruit":"orange", "vege":"carrot"}, {"vehicle":"bike"}]"/>
不是有效的html。
我想有可能逃脱每个角色,并在服务器端进行条纹斜杠,尽管这看起来非常混乱。从视觉上看,没有理由将数据插入到html中。我更希望在提交表单之前使用javascript/jQuery将数据附加到POST中。
如果我使用ajax提交表单,这是微不足道的,但是由于各种原因,表单应该转发到处理页面。
最简单的方法是在value属性周围使用单引号,在JSON:中使用双引号
<input type="hidden" name="test" value='[{"fruit":"orange", "vege":"carrot"}, {"vehicle":"bike"}]' />
或者你可以做相反的事情:
<input type="hidden" name="test" value="[{'fruit':'orange', 'vege':'carrot'}, {'vehicle':'bike'}]" />
但是,如果在服务器端使用第二种方法,则必须将单引号替换为双引号,才能使其成为有效的JSON。