【问题标题】:How can I convert the object array to GraphQL format in Javascript?如何在 Javascript 中将对象数组转换为 GraphQL 格式?
【发布时间】:2018-07-14 20:18:51
【问题描述】:

我正在使用 React,我发送以下信息:

const imageServicesClean = JSON.stringify(imageServices);
const query = `
    mutation {
        companyUpdate(
                idCompany:${idCompany},
                name:${nameClean},
                imageServices:${imageServicesClean})
            {
            idCompany
            name
            imageServices {
                idImageService
                name
                url
                key
            }
        }
    }`;

而imageServicesClean是这样发送的,但是返回错误:

[{
    "idImageService": 1,
    "name": "Service1",
    "url": "",
    "key": "asdasdas"
}, {
    "idImageService": 2,
    "name": "Service2",
    "url": "sdsads",
    "key": "sddsfsds_"
}]

因为我的 GraphQL 服务器 (Laravel) 只允许不带引号的变量,这样:

[{
    idImageService: 1,
    name: "Service1",
    url: "",
    key: "sdofunc4938urcnnwikk"
}, {
    idImageService: 2,
    name: "Service2",
    url: "sdsads",
    key: "sddsfsdssss8347yuirh"
}]

所以函数 JSON.stringify 不适用于 GraphQL 中的构建格式。如何在 Javascript 中将对象数组转换为 GraphQL 格式?

【问题讨论】:

  • JSON.parse(imageServices)怎么样?
  • JSON.parse 将 JSON 字符串作为参数,事实并非如此

标签: laravel reactjs graphql


【解决方案1】:

最后这是我的解决方案:

const imageServicesClean = JSON.stringify(imageServices);
const graphQLImageServices = imageServicesClean.replace(/"([^(")"]+)":/g,"$1:");

但最后我正在使用这个库,它为我做了一切:https://github.com/atulmy/gql-query-builder

【讨论】:

  • 您好,请问(") 是做什么的?我认为这已经足够了/"([^"]+)":/g,"$1:",所以我试图了解(") 的目的是什么。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 2022-01-01
  • 1970-01-01
  • 2015-01-13
  • 2011-04-21
相关资源
最近更新 更多