Почему в ответ JSON включены типы данных? - PullRequest
0 голосов
/ 02 мая 2019

Я использую API через React-Native, и в ответ JSON включаются строки типа данных:

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

Обратите внимание на строки типа "Object" и "Array"в ответ.

Когда я curl точно такой же конечной точки из моего CLI, я получаю правильно отформатированный 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, и как моя реализация может быть причиной.

...