我們在工作中遇到的情況:
- vue 3前端界面 + php 后端 API
- vue 3采用typescript
- API數(shù)據(jù)采用json格式
出現(xiàn)的問題
當post api時提交的json數(shù)據(jù)中包含{}這種空JSON對象,比如style:{}, 后端php在處理過程中會變成[]并返回給前端,導致前端后續(xù)的功能出現(xiàn)bug,如這時再往style中設置值就不能正常工作了:style[‘foo’] = ‘bar’, 這時設置是不成功
問題的原因
原因1: typescript的強類型,如果是javascript,這點其實并不影響,JS數(shù)組可以直接設置值:var style = []; style[“foo”] = “bar”;這個操作是成功的。
原因2: 后端php在處理的過程中都是按數(shù)組格式處理:json_decode($data, true),無形中就把{}變成了php的空數(shù)組,然后返回給前端時json_encode就變成[]。
解決辦法
修改后端json_decode總是按對象格式處理