iT邦幫忙

0

Webapi 返回資料的問題

  • 分享至 

  • xImage

假設Webapi 傳回一個產品清單,而清單亦會列明產地,以下哪一種JSON方式比較常用

{
    products: 
    [
        { id: 1, Country: "UK" },
        { id: 2, Country: "TW" }
    ]
}

另一方式: 使用枚舉

{
    products: 
    [
        { id: 1, Country: 1 },
        { id: 2, Country: 2 }
    ],
    countries: [ "UK", "TW" ]
}
常用不代表適用,還是要依應用到這結構資料的功能頁,實務上需要到多精細,如果只是向你的範例那樣,那建議可以不要複雜化用第一種就好。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
dragonH
iT邦超人 5 級 ‧ 2020-03-16 11:14:27

第一種簡單可以直接用

第二種你還需要跟 countries 的 array 來做 mapping

估計是後端 database 有做關聯才會這樣寫吧

所以結論

你高興就好 /images/emoticon/emoticon48.gif

0
allenlwh
iT邦高手 1 級 ‧ 2020-03-16 11:28:30

我會選第一種。接收端處理資料會比較簡單。

0
japhenchen
iT邦超人 1 級 ‧ 2020-03-16 11:31:18

第一種就是在後端把資料庫都INNER JOIN好,就免除第二種前端在做MAPPING的動作,直接把JSON值寫回頁面即可

你不會希望把所有的country都列舉出來,不管JSON資料裡到底包不包含其他沒用到的id...你的資料庫裡的country不會只有tw跟uk吧

fm119 iT邦新手 5 級 ‧ 2020-03-16 15:02:34 檢舉

看來如果只是顯示資料使用第一種就夠用,如果容許用戶以下拉式選單改變country就要用第二種

0
小魚
iT邦大師 1 級 ‧ 2020-03-16 13:15:51

我選擇第三種,

{
    products: 
    [
        { id: 1, country_id: 1, Country: "UK" },
        { id: 2, country_id: 2, Country: "TW" }
    ]
}

前端可以直接列出資料,
然後又可以取得代號,

不過通常資料庫應該都有關聯了,
如果不需要用到country的代號,
應該是不用列出來,
如果你不是負責資料庫的人,
應該不用擔心這個問題.

fm119 iT邦新手 5 級 ‧ 2020-03-16 15:03:05 檢舉

這個方法也不錯

0
海綿寶寶
iT邦大神 1 級 ‧ 2020-03-16 15:16:32

全部混成撒尿牛丸不就得了

{
    products: 
    [
        { id: 1, CountryCode: "UK", CountryName: "United Kingdom" },
        { id: 2, CountryCode: "TW", CountryName: "Taiwan" }
    ]
}

我要發表回答

立即登入回答