标签: json-ld

React JSON 模式双引号编码

我正在开发一个需要定义 json-ld 架构的 React 应用程序。我通过 API 获取架构字符串,并且需要将适当的脚本标记添加到我的页面。

我的架构字符串看起来像这样:

[{"@context": "http://schema.org"}]
Run Code Online (Sandbox Code Playgroud)

我希望这会被翻译成:

<script type="application/ld+json">
   [{"@context": "http://schema.org"}]                    
</script>
Run Code Online (Sandbox Code Playgroud)

然而,我在处理双引号时遇到了麻烦,因为它们被转换为等效的 html -&quot;

这就是我的代码的样子:

schemaString = "[{\"@context\": \"http://schema.org\"}]";

render() {
    return (<div>{schemaString &&
                <script type="application/ld+json">
                    {schemaString}
                </script>}
            </div>)
}
Run Code Online (Sandbox Code Playgroud)

生成的html为:

<div>
  <script type="application/ld+json">
    [{&quot;@context&quot;: &quot;http://schema.org&quot;}]
  </script>
</div>
Run Code Online (Sandbox Code Playgroud)

关于我在这里缺少什么的任何指示吗?谢谢!

javascript schema.org reactjs json-ld

5
推荐指数
2
解决办法
1629
查看次数

如何配置 Spring Data Rest 返回 Json-LD 或 Siren 媒体类型而不是 HAL

我一直在努力寻找任何示例来说明如何覆盖默认的 Spring Boot Data Rest JpaRepository 行为以返回 HAL 响应以外的其他内容。我发现 Siren 和 Json-LD 都可以满足要求,但没有任何如何让它与 spring 一起工作的示例。我正在使用 Spring 5、Spring Data Rest 2.0.4.RELEASE。请注意,我不想为自定义休息控制器执行此操作,而是为通过扩展 JpaRepository 提供的默认存储库执行此操作。这是我第一次发帖,因此对于我可能无意中违反的任何规则,我深表歉意。

更新:我能够找到一个具有 SirenMessageConverter 的库 Hydra-Spring,按照存储库上的示例,我能够执行以下操作:

@Configuration
@EnablePluginRegistries(RelProvider.class)

public class Config implements WebMvcConfigurer   {

private static final boolean EVO_PRESENT =
        ClassUtils.isPresent("org.atteo.evo.inflector.English", null);

@Autowired
private PluginRegistry<RelProvider, Class<?>> relProviderRegistry;

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(sirenMessageConverter());
    converters.add(hydraMessageConverter());
    converters.add(halConverter());
    converters.add(uberConverter());
    converters.add(xhtmlMessageConverter());
    converters.add(jsonConverter());
}

@Bean
public RepositoryRestConfigurerAdapter repositoryRestConfigurer() {

    return new RepositoryRestConfigurerAdapter() {

        @Override
        public void configureHttpMessageConverters(
              List<HttpMessageConverter<?>> messageConverters) {
            messageConverters.add(0, sirenMessageConverter());
        } …
Run Code Online (Sandbox Code Playgroud)

spring spring-data-jpa spring-hateoas json-ld hydra-core

5
推荐指数
0
解决办法
1210
查看次数

如何正确地将 mainEntityOfPage 用于博客详细信息页面?

我已经阅读了几个mainEntityOfPage关于它是什么以及如何使用它的答案,每个答案都比上一个更令人困惑。

所以我的问题是具体的;我有一个包含博客部分的网站。在博客详细信息页面上,我想使用 JSON-LD 格式的结构化数据。

我的问题:我mainEntityOfPageWebPage还是BlogPosting

我应该使用这个:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "WebPage",
    "mainEntityOfPage": {
        "@type": "BlogPosting",
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

或这个:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "BlogPosting",
    "mainEntityOfPage": {
        "@type": "WebPage",
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

我在想mainEntityOfPageBlogPosting,所以第一个例子,是吗?还是我还是错了?

blogs schema.org json-ld

5
推荐指数
1
解决办法
1335
查看次数

HATEOAS 和 API 驱动的表单

我正在尝试将 HATEOAS 应用于现有应用程序,但在对由 API 响应驱动的表单输入进行建模时遇到问题。

\n\n

该应用程序允许搜索和预订两个地方之间的连接。第一个端点允许搜索连接GET /connections?from={lat,lon}&to={lat,lon}&departure={dateTime}并返回以下有效负载(响应正文)。

\n\n
[\n  {\n    "id": "aaa",\n    "carrier": "Fast Bus",\n    "price": 3.20,\n    "departure": "2019-04-05T12:30"\n  },\n  {\n    "id": "bbb",\n    "carrier": "Airport Bus",\n    "price": 4.60,\n    "departure": "2019-04-05T13:30"\n  },\n  {\n    "id": "ccc",\n    "carrier": "Slow bus",\n    "price": 1.60,\n    "departure": "2019-04-05T11:30"\n  }\n]\n
Run Code Online (Sandbox Code Playgroud)\n\n

为了对其中一个连接下订单,客户端需要POST /orders使用以下有效负载之一(请求正文)发出请求:

\n\n

hateoas spring-hateoas json-ld collection-json json-api

5
推荐指数
1
解决办法
831
查看次数

我可以将 JSON-LD 转换为 Java 对象吗?

编辑:我改变了主意。我会找到一种方法来生成 Java 类并将 JSON 作为该类的对象加载。


我刚刚发现存在一个JSON名为的变体JSON-LD

在我看来,这是一种更加结构化的定义方式JSON,它让我想起了XML关联的模式,例如XSD.

我可以从创建一个 Java 类JSON-LD,在运行时加载它并使用它转换JSON-LD为该类的实例化吗?

我阅读了这两种实现的文档,但没有发现任何相关内容。也许我读得不好?

java json jena json-ld

5
推荐指数
1
解决办法
2438
查看次数

如何向Vue添加结构化数据(json-ld)?

将json-ld添加到 vue 应用程序的正确方法是什么\xe2\x80\x99 ?

\n\n

我\xe2\x80\x99添加了一些结构化数据,但Google结构化数据测试工具未检测到我的网址上的数据。但是,如果我查看 url 的来源并将其粘贴到测试工具中,它会检测到我的数据。缺少什么?

\n

structured-data json-ld vue.js

5
推荐指数
1
解决办法
4504
查看次数

与使用 JSON-LD 相比,使用 JSON-LD 有什么明显的优势吗?JSON:REST 端点的 API?

我想创建一组 REST API 端点来公开各种数据源。我希望我的端点符合Richardson 成熟度模型,特别是对 HATEOAS 的支持。

我查看了JSON-LDJSON:API,它们似乎都很合适,因为它们都可以同等支持 REST 和 HATEOAS,但是 JSON:API 还有许多其他功能,这些功能更像“gRPC” '。

与使用 JSON-LD 相比,使用 JSON-LD 有什么明显的优势吗?JSON:REST 端点的 API?适用于 REST 的功能差异有哪些?

rest json-ld json-api

5
推荐指数
0
解决办法
535
查看次数

使用HAL词汇与JSON-LD

我想知道,有没有办法在JSON-LD中使用HAL概念?

我有当前的jsonld文档:

{
    "@context": {
        "hal": "http://stateless.co/hal#",
        "schema": "http://schema.org",
        "_links": {
            "@id": "hal:link",
            "@container": "@index"
        }
    },
    "@type": ["schema:Person", "hal:Resource"],
    "name": "Jon Snow",
    "_links": {
        "self": {
            "href": "/users/123"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何定义该href具有@type@id,等等...

有没有办法基于RDF(S)定义HAL词汇并以某种方式将其导入我的jsonld文档的@context中,或者我应该做其他什么?
(我试图描述具有各种属性的超链接,如链接关系,HTTP方法,接受的媒体类型,语言,IRI模板,输入字段等等......所以@id类型不足以让我描述链接.)

rest rdf hateoas hal-json json-ld

4
推荐指数
1
解决办法
1259
查看次数

谷歌会接受组合的JSON-LD和HTML元/微数据吗?

我有一种情况,我可以将99%的结构化数据放入我的产品页面中的JSON-LD中.但我获得UPC的唯一方法是将其作为微数据内联.

Google会聚合JSON-LD和内联微数据中的产品数据吗?

microdata schema.org json-ld google-rich-snippets

4
推荐指数
1
解决办法
786
查看次数

JSON到JSON LD,对原始JSON的更改很少(JSON-LD上下文中的所有更改)

TL; DR

如果我有一个像JSON文件

{
  "policyid": "http://example.com/policy:0099",
  "policytype": "http://www.w3.org/ns/odrl/2/Set" 
}
Run Code Online (Sandbox Code Playgroud)

我想要一个类似的JSON-LD文档

{
  "@context": {
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "policytype": { "@id": "rdf:type",  "@type": "@id" }
   }
   "@id" : "http://example.com/policy:0099",
   "policytype": "http://www.w3.org/ns/odrl/2/Set"
}
Run Code Online (Sandbox Code Playgroud)

是否可以不将名称/值对{{policyid":" http://example.com/policy:0099 "} 更改为{"@ id ":" http://example.com/policy:0099 "而是在上下文中说出"policyid" - >"@ id".

{
  "@context": {
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "policytype": { "@id": "rdf:type",  "@type": "@id" },
    #### something here that says "policyid" -> "@id"
   }
   "policyid" : "http://example.com/policy:0099",
   "policytype": "http://www.w3.org/ns/odrl/2/Set"
}
Run Code Online (Sandbox Code Playgroud)

我正在通过规范示例,但无法找到如何做到这一点.

更多背景

假设我们有一个具有RDF规范和JSON编码的模型,例如ODRL 2.1 OntologyODRL Version 2.1 JSON Encoding. …

json rdf json-ld

4
推荐指数
1
解决办法
186
查看次数