我有一个功能,应该检查旧数据对数据。我正在解析data和oldData以分别获取JSON对象,因为dbData和formData只是包含ID和HTMML表单值的字符串。该函数的用法是检查用户是否在HTML表单中改变了一些textareas文本。我想通过检查每个textarea的ID,然后检查formData和Data中的值是否相同。在那种情况下,没有改变,并且该函数将返回true。JSON解析对象和通配符
的数据串IM解析看起来是这样的:
"[{\"texts\":[{\"default\":true,\"bread-texts\":false,\"textarea1\":\"Banana\",\"textarea2\":\"Kiwi\",\"textarea3\":\Apple \",\"textarea4\":\"coffe\",\"textarea5\":\"Tea\",\"signature\":true,\"profile\":\"header\",\"fontsize\":\"26\",\"fontsize-headers\":\"10.5\",\"fontcolor\":\"#0000\",\"textfont\":\"header-large\",\"textsub1\":\"Bold\",\"font\":\"ICA%20Text\",\"textsub\":\"Regular\",\"textsize\":\"20\",\"textsize-signature\":\"9.5\",\"textsizesmall\":\"5.5\",\"textsizesmall-placer\":\"2.75\",\"vers-placer\":\"false\",\"text-colored\":\"%23000000\",\"s-all-customers\":true,\"new-customers\":true,\"undefined\":\"\"}]}]"
因此,例如,我要检查ID为dbData和FORMDATA“textarea1”,然后检查是否值是一样的。这可以使用通配符来完成,还是有更好的方法来存档?
function CheckValues() {
var isChanged = false;
var formData = $.parseJSON(data);
var dbData = $.parseJSON(oldData);
if(formData !== dbData) {
var isChanged = true;
}
return isChanged;
}
你的JSON字符串有语法错误...... - 在这个'\ “textarea3 \”:\ “牛奶” \“'...所以这'$ .parseJSON'将返回'FALSE' ,因为你的对象结构是错误的... – Legionar
不容易为什么要比较两个对象如果旧的和新的json字符串的数据结构是相同的,你可以将JSON字符串与'if(data === oldData ){''而不是解析它们两个: – Blindman67
Th真正的json字符串即时通讯使用正常工作,为了演示,我不得不将它与上下文相提并论,因为字符串包含的id不是textareas。我必须检查textareas而不是整个表格。 – koffe14