一、關鍵觀念(很重要)
在 dBase 2019 的 JSON 類別中:
-
js.findMember("xxx")-
會把
js.member指到找到的那個成員
-
-
js.member-
是「目前找到的成員」
-
-
如果該 member 是 object:
-
你必須用
js.member.findMember("yyy") -
找到後,結果會存在:
⚠ 這是兩層!
-
這一行
現在狀態變成:
IT 工作者的工作紀錄
在 dBase 2019 的 JSON 類別中:
js.findMember("xxx")
會把 js.member 指到找到的那個成員
js.member
是「目前找到的成員」
如果該 member 是 object:
你必須用 js.member.findMember("yyy")
找到後,結果會存在:
js.member.member
⚠ 這是兩層!
? "find prop1", js.member.findmember("prop1")
現在狀態變成:
js.member → 還是 subObjjs.member.member → 指向 prop1? "name and value", js.member.member.name
錯誤原因:
js.member.member 只有在 成功 findMember() 之後才存在
如果 findMember("prop1") 回傳 False
或 subObj 不是 object
就會錯。
? "find prop2", js.member.findmember("prop2")
⚠ 注意!
你現在的 js.member 仍然是:
subObj
是正確的。
但如果你中間有改過 js.member = js.member.member
就會出錯。
應該這樣寫:
if js.findMember("subObj")
if js.member.findMember("prop1")
? js.member.member.name, js.member.member.value
endif
endif
否則找不到時會 error。
"prop1" : 123
是數值 ✔
但
js.member.value
若是 object,會回傳 JSON 文字,不是物件。
var = '{"ID":"1010","Name":"Marty","Address":"123 Main Street","subObj":{"prop1":123,"prop2":555}}'
js = new json()
js.parse(var)
if js.findMember(“subObj”)
if js.member.isObject()
if js.member.findMember(“prop1”)
? js.member.member.name, js.member.member.value
endif
if js.member.findMember(“prop2”)
? js.member.member.name, js.member.member.value
endif
endif
endif
MIS, ERP Pro... RHCE Member (7.2)