Skip to main content
JSON 加载器使用 JSON 指针 来定位 JSON 文件中您想要提取的键。

不使用 JSON 指针的示例

最简单的方式是不指定 JSON 指针。加载器将提取 JSON 对象中所有找到的字符串。 示例 JSON 文件:
{
  "texts": ["这是一个句子。", "这是另一个句子。"],
  "nestedTexts": {
    "one": "这是嵌套在对象中的一个句子。",
    "two": "这是嵌套在对象中的另一个句子。"
  }
}
示例代码:
import { JSONLoader } from "@langchain/classic/document_loaders/fs/json";

const loader = new JSONLoader("src/document_loaders/example_data/example.json");

const docs = await loader.load();
/*
[
  Document {
    pageContent: '这是一个句子。',
    metadata: { source: 'example.json', line: 1 }
  },
  Document {
    pageContent: '这是另一个句子。',
    metadata: { source: 'example.json', line: 2 }
  },
  Document {
    pageContent: '这是嵌套在对象中的一个句子。',
    metadata: { source: 'example.json', line: 3 }
  },
  Document {
    pageContent: '这是嵌套在对象中的另一个句子。',
    metadata: { source: 'example.json', line: 4 }
  }
]
*/

使用 JSON 指针的示例

您可以选择从 JSON 对象中的哪些键提取字符串。 在此示例中,我们只想从 “from” 和 “surname” 条目中提取信息。
{
  "1": {
    "body": "BD 2023 SUMMER",
    "from": "LinkedIn Job",
    "labels": ["IMPORTANT", "CATEGORY_UPDATES", "INBOX"]
  },
  "2": {
    "body": "Intern, Treasury and other roles are available",
    "from": "LinkedIn Job2",
    "labels": ["IMPORTANT"],
    "other": {
      "name": "plop",
      "surname": "bob"
    }
  }
}
示例代码:
import { JSONLoader } from "@langchain/classic/document_loaders/fs/json";

const loader = new JSONLoader(
  "src/document_loaders/example_data/example.json",
  ["/from", "/surname"]
);

const docs = await loader.load();
/*
[
  Document {
    pageContent: 'LinkedIn Job',
    metadata: { source: 'example.json', line: 1 }
  },
  Document {
    pageContent: 'LinkedIn Job2',
    metadata: { source: 'example.json', line: 2 }
  },
  Document {
    pageContent: 'bob',
    metadata: { source: 'example.json', line: 3 }
  }
]
*/