如何将我的响应从 API 更改为 JsonDecoder?

问题描述

我有一个接口类型,它是 API 的响应类型:

export interface Pattern {
  room: number;
  days1?: string[];
  days2?: string[];
}

我要把它改成jsonDecode,我把它改成

const bookedDaysDecoder =
  JsonDecoder.array<Pattern>(
    JsonDecoder.object<Pattern>(
      {
        roomId: JsonDecoder.number,week1Days: JsonDecoder.array<string>(JsonDecoder.string,'string[]'),week2Days: JsonDecoder.array<string>(JsonDecoder.string,'string[]')
      },'Pattern'
    ),'Pattern[]'
  )
但它没有给我正确的数据(我在网络选项卡中获取数据,这意味着 API 确实

const bookedDaysDecoder =
  JsonDecoder.array<Pattern>(
    JsonDecoder.object<Pattern>(
      {
        roomId: JsonDecoder.number,'Pattern[]'
  )

export const getDta = async (
  checkNumber: number
): Promise<AxiosResponse<Patterns>> => {
  const result = await axios.get<BookedDayRequest,AxiosResponse<Patterns>>(api('checkDays'),{
    params: {
      checkNumber: checkNumber
    }
  }
  )
  if (result) {
    result.data = await bookedDaysDecoder.decodePromise(result.data)
  }

  return result
}

没问题)

我将知道我是否正确使用 jsonDecoder

const bookedDaysDecoder =
  JsonDecoder.array<Pattern>(
    JsonDecoder.object<Pattern>(
      {
        roomId: JsonDecoder.number,'Pattern[]'
  )

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)