如何在JSON-LD中正确包含Base64编码的PDF内容?
正确处理JSON-LD中evidence字段的Base64 PDF内容
要把Base64编码的PDF正确放进JSON-LD的evidence字段,核心要做好类型定义和格式规范,下面是具体方案:
基础修正方案(直接存Base64字符串)
首先得在@context里给evidence指定正确的数据类型,因为Base64属于二进制编码数据,对应XML Schema里的xsd:base64Binary类型。修正后的结构如下:
{ "@context": { "alumniOf": { "@id": "http://schema.org/alumniOf", "@type": "xsd:string" }, "evidence": { "@type": "xsd:base64Binary" }, "xsd": "http://www.w3.org/2001/XMLSchema#" }, "alumniOf": { "@id": "https://www.example.com/" }, "evidence": "JVBERi0xLjcKJ...<完整的Base64编码PDF内容>..." }
进阶语义化方案(更清晰的文档描述)
如果需要让JSON-LD的语义更明确,比如说明这是一个PDF文档,可以把evidence定义为DigitalDocument类型,同时标注文件格式和Base64数据:
{ "@context": { "alumniOf": "http://schema.org/alumniOf", "evidence": "http://schema.org/evidence", "DigitalDocument": "http://schema.org/DigitalDocument", "fileFormat": "http://schema.org/fileFormat", "contentUrl": "http://schema.org/contentUrl", "xsd": "http://www.w3.org/2001/XMLSchema#" }, "alumniOf": { "@id": "https://www.example.com/" }, "evidence": { "@type": "DigitalDocument", "fileFormat": "application/pdf", "contentUrl": "data:application/pdf;base64,JVBERi0xLjcKJ...<完整的Base64编码PDF内容>..." } }
注意事项
- 保证Base64字符串完整且无格式错误:不要加多余的空格、换行,否则解码PDF时会失败。
- 若PDF体积较大,谨慎直接嵌入:过大的Base64数据会让JSON-LD文档变得臃肿,影响传输和解析效率,这种情况更建议用文件的可访问URL代替直接嵌入Base64。
内容的提问来源于stack exchange,提问作者Sreenivasulu Reddy
相关产品推荐
相关产品推荐

