探秘豐富多彩的JSON 數(shù)據(jù)進行說明講解
對使用JSON 數(shù)據(jù)這樣的 API(提供了將自己的數(shù)據(jù)結構轉換為文本的函數(shù)),也需要學習這個 API 并使用 API 的對象,而不是使用原生的 JavaScript 對象和語法,這樣就可以輕松地將數(shù)據(jù)轉換為可以在請求中發(fā)送給服務。
將 JSON 數(shù)據(jù)賦值給變量
例如,可以創(chuàng)建一個新的 JavaScript 變量,然后將 JSON 格式的數(shù)據(jù)字符串直接賦值給它:
- people.programmers[0].lastName;
這非常簡單;現(xiàn)在 people 包含前面看到的 JSON 格式的數(shù)據(jù)。但是,這還不夠,因為訪問數(shù)據(jù)的方式似乎還不明顯。
訪問數(shù)據(jù)
盡管看起來不明顯,但是上面的長字符串實際上只是一個數(shù)組;將這個數(shù)組放進 JavaScript 變量之后,就可以很輕松地訪問它。實際上,只需用點號表示法來表示數(shù)組元素。所以,要想訪問 programmers 列表的***個條目的姓氏,只需在 JavaScript 中使用下面這樣的代碼:
- people.authors[1].genre
- // Value is "fantasy" people.musicians[3].lastName
- // Undefined. This refers to the fourth entry, and there isn't one people.programmers.
- [2].firstName // Value is "Elliotte"
注意,數(shù)組索引是從零開始的。所以,這行代碼首先訪問 people 變量中的數(shù)據(jù);然后移動到稱為 programmers 的條目,再移動到***個記錄([0]);***,訪問 lastName 鍵的值。結果是字符串值 “McLaughlin”。
下面是使用同一變量的幾個示例。
- people.musicians[1].lastName = "Rachmaninov";
利用這樣的語法,可以處理任何 JSON 格式的數(shù)據(jù),而不需要使用任何額外的 JavaScript 工具包或 API。
修改 JSON 數(shù)據(jù)
正如可以用點號和括號訪問數(shù)據(jù),也可以按照同樣的方式輕松地修改數(shù)據(jù):
- String newJSONtext = people.toJSONString();
這樣就行了!現(xiàn)在就獲得了一個可以在任何地方使用的文本字符串,例如,可以將它用作JSON 數(shù)據(jù)應用程序中的請求字符串。