如何将JSONObject值分配给graphql模式文件中的字段?

问题描述

我正在使用带有graphQL和spring boot framework的应用程序。在这里,我使用GraphQL的“架构优先”方法来编写我的架构详细信息。在我的场景中,我需要将JSONObject和JSONArray作为输入分配给Schema文件中的几个字段。在graphQL模式文件中,我们不能直接将JSONObject / JSONArray设置为数据类型。有人可以指导我如何在graphQL中处理JSONObject / JSONArray吗?

解决方法

您可以定义自己的标量类型JSON:

scalar JSON

type Foo {
  field: JSON
}

然后实现一个新的java GraphQLScalarType bean:

@Component
public class JSONScalarType extends GraphQLScalarType {

  JSONScalarType() {
    super("JSON","JSON value",new Coercing<Object,Object>() {
        ...
    });
  }   
}

最后实现标量强制。您可以在https://www.graphql-java.com/documentation/v15/scalars/

上找到有关标量类型的教程。

或者,就像在graphql中一样,JSON是一个对象,您可以看看graphql-java-extended-scalars如何实现Object和JSON标量:https://github.com/graphql-java/graphql-java-extended-scalars/blob/master/src/main/java/graphql/scalars/object/ObjectScalar.java

另一种解决方案是使用graphql-java-extended-scalars库:https://github.com/graphql-java/graphql-java-extended-scalars

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...