为什么此JSON响应中包含数据类型?

时间:2019-05-02 02:56:13

标签: json react-native redux redux-thunk

我正在通过React-Native使用API​​,并且JSON响应中包括了数据类型字符串,如下所示:

{"volumeInfo": Object {
    "allowAnonLogging": false,
    "authors": Array [
      "Tim Mathers",
    ],
    "canonicalVolumeLink": "https://market.android.com/details?id=book-ZzOPDwAAQBAJ",
    "categories": Array [
      "Sports & Recreation",
    ]}

请注意,响应中包括“对象”和“数组”类型的字符串。

当我从CLI curl使用相同的端点时,会得到正确格式的JSON,如下所示:

{"volumeInfo": {
"title": "Baseball",
"subtitle": "America's Diamond Mind, 1919-1941",
"authors": [
 "Richard C. Crepeau"
],
"publisher": "U of Nebraska Press",
"publishedDate": "2000"}

来自curl的数据不仅以正确的格式返回,而且以与我的应用程序完全不同的顺序返回。这使我相信我的实现是原因。参见下面的代码

操作

export function searchBooks(book)
{
    const url = `${BASE_URL}q=${book}&filter=free-ebooks&key=${API_KEY}`;
    return dispatch => {
        dispatch(getData());
        fetch(url)
        .then(blob => blob.json())
        .then(data => {
            console.log(data)
            dispatch(getDataSuccess(data))
        })
        .catch(e => {
            console.log(e);
            dispatch(getDataFailure(e.message))
        });
    }
}

减速器

const initialState = {
    payload:[],
    fetching: false,
    error: false
}

export default function(state=initialState, action){

    switch (action.type){
        case FETCHING_DATA: return {payload:[], fetching: true, ...state}
        case FETCH_SUCCESS: return {payload:[action, ...state]}
        case ERROR: return {payload:[], error: true, ...state}       
    }
    return state;
}

感谢您澄清为什么JSON中包含数据类型以及实现的原因。

0 个答案:

没有答案