我有一個功能,應該檢查舊數據對數據。我正在解析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