JSON 的完整語法如下:
JSON = null
or true or false or JSONNumber or JSONString or JSONObject or JSONArray JSONNumber = - PositiveNumber or PositiveNumber PositiveNumber = DecimalNumber or DecimalNumber . Digits or DecimalNumber . Digits ExponentPart or DecimalNumber ExponentPart DecimalNumber = 0 or OneToNine Digits ExponentPart = e Exponent or E Exponent Exponent = Digits or + Digits or - Digits Digits = Digit or Digits Digit Digit = 0 through 9 OneToNine = 1 through 9 JSONString = "" or " StringCharacters " StringCharacters = StringCharacter or StringCharacters StringCharacter StringCharacter = any character except " or \ or U+0000 through U+001F or EscapeSequence EscapeSequence = \" or \/ or \\ or \b or \f or \n or \r or \t or \u HexDigit HexDigit HexDigit HexDigit HexDigit = 0 through 9 or A through F or a through f JSONObject = { } or { Members } Members = JSONString : JSON or Members , JSONString : JSON JSONArray = [ ] or [ ArrayElements ] ArrayElements = JSON or ArrayElements , JSON二.JSON函式用法
A common use of JSON is to exchange data to/from a web server.
When sending data to a web server, the data has to be a string.
Convert a JavaScript object into a string with JSON.stringify()
Ex:1
const obj = {name: "John", age: 30, city: "New York"};
const myJSON = JSON.stringify(obj)
const myJSON = JSON.stringify(obj)
Ex2: 畫面的 store 轉成 JSON String
function mySub1_OkBtn_click() {
//0 > 將目前畫面的store資料, 存成 np(多筆資料) 當參數, 傳給 處理 url
console.log("0 mySub1_OkBtn_click - 列印包裝標籤.確定");
var Tmp_sub_store = Ext.getCmp('sub_Grid').store;
var cur_rec;
var Tmp_SAPNO, Tmp_PN, Tmp_QTY, Tmp_EOCND, Tmp_RMK;
var Tmp_data_JSON = ""; //將store資料轉成 JSON 的字串
var Tmp_sub_np = {};
let Tmp_DataAry1 = [];
var Tmp_Str="";
for (i = 0; i < Tmp_sub_store.getCount(); i++) {
cur_rec = Tmp_sub_store.getAt(i);
console.log(Tmp_Str + "cur_rec:", cur_rec);
Tmp_DataAry1.push(cur_rec.data);
}
console.log("Tmp_DataAry1:", Tmp_DataAry1);
let Tmp_DataString1 = JSON.stringify(Tmp_DataAry1);
console.log("Tmp_DataString1:", Tmp_DataString1);
var Tmp_CHKDT = Ext.getCmp("sub_DT").getValue();
console.log("Tmp_CHKDT:", Tmp_CHKDT);
var np = {};
np = {
DataString1: Tmp_DataString1, //將子畫面的資料(store)轉成 JSON字串
CHKDT: Tmp_CHKDT,
};
Ext.getCmp('mySubForm').submit({
//Ext.Ajax.request({
url: '../../api/V120502API/DoPRNLIST',
method: 'POST',
async: false,
standardSubmit: true, // 非 Ajax 的方式 //若要傳送檔案至前端, standardSubmit必需設為 true
params: np,
});