国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

竟然還能這樣高效地操作 JSON 對象!

開發 前端
當處理大型或復雜的 JSON 數據結構時,定位特定值可能會變得非常麻煩。使用 JSON Pointer 可以讓你以一種簡單而準確的方式指定所需值的位置,而不需要編寫復雜的代碼來遍歷整個 JSON 結構。

什么是 JSON Pointer

JSON Pointer[1] 是一種用于定位 JSON(JavaScript Object Notation)文檔中特定值的簡單而強大的方法。它通過使用斜杠 / 分隔符來指示 JSON 對象的層級結構,以確切地標識所需值的位置。

為什么使用 JSON Pointer

當處理大型或復雜的 JSON 數據結構時,定位特定值可能會變得非常麻煩。使用 JSON Pointer 可以讓你以一種簡單而準確的方式指定所需值的位置,而不需要編寫復雜的代碼來遍歷整個 JSON 結構。這極大地簡化了 JSON 數據的定位和操作過程。

此外,JSON Pointer 還具有以下優點:

  • 通用性:JSON Pointer 是一種通用的標準,因此可以在各種編程語言和平臺上使用。這種通用性使得 JSON Pointer 成為跨平臺開發和數據交換的理想選擇。
  • 效率:由于 JSON Pointer 可以直接定位到所需值,因此它在處理大型 JSON 數據時效率很高。相比于傳統的逐層遍歷搜索方式,JSON Pointer 能夠更快速地找到目標值。
  • 簡單易懂:JSON Pointer 使用類似文件路徑的語法,因此非常直觀和易于理解。它的語法簡潔清晰,使得使用者可以輕松地理解和使用它。
  • 精確定位:JSON Pointer 允許你以非常準確的方式指定 JSON 對象中的值,而無需關心其周圍的結構。這意味著你可以專注于所需值的確切位置,而不必擔心其他內容。

如何使用 JSON Pointer

很多常見的開發語言,都實現了 JSON Pointer 規范。在 Node.js 環境,我們可以使用 jsonpointer[2] 這個庫。

首先,使用 npm 或 pnpm 來安裝 jsonpointer:

npm install jsonpointer
or 
pnpm add jsonpointer

成功安裝 jsonpointer 庫之后,我們就可以利用它提供的 API 來快速的定位和操作 JSON 對象。

1.獲取指定路徑的屬性值

JSON Pointer 使用斜杠 / 分隔符來指示 JSON 對象的層級結構,如果指定的路徑不存在,則會返回 undefined。

const jsonpointer = require("jsonpointer");
let obj = {
  foo: 1,
  bar: { baz: 2 },
  qux: [3, 4, 5],
  zoo: {
    e: [{ a: 3 }, { b: 4 }, { c: 5 }],
  },
};

jsonpointer.get(obj, "/foo"); // returns 1
jsonpointer.get(obj, "/bar/baz"); // returns 2

jsonpointer.get(obj, "/quo"); // returns undefined

2.獲取數組對象指定位置的值

若要訪問指定位置的數組元素,則需要在 / 分隔符后面添加該元素的索引。

jsonpointer.get(obj, "/qux/0"); // returns 3
jsonpointer.get(obj, "/qux/1"); // returns 4
jsonpointer.get(obj, "/qux/2"); // returns 5

如果數組元素也是對象的話,我們只需按照屬性的層級結構進行訪問路徑即可。

jsonpointer.get(obj, "/zoo/e/0/a"); // returns 3
jsonpointer.get(obj, "/zoo/e/1/b"); // returns 4
jsonpointer.get(obj, "/zoo/e/2/c"); // returns 5

除了,獲取 JSON 對象的值之外,通過使用 jsonpointer 這個庫提供的 set 方法,我們也可以設置指定路徑的值。

3.設置指定路徑的屬性值

JSON Pointer 提供了一種往數組中插入新元素的便捷語法,即在 / 路徑后添加 - 符號:

// sets obj.foo = 6;
jsonpointer.set(obj, "/foo", 6); 
// sets obj.qux = [3, 4, 5, 6]
jsonpointer.set(obj, "/qux/-", 6); 

// set zoo.e = [{"a":3},{"b":4},{"c":5},{"d":6}]
jsonpointer.set(obj, "/zoo/e/-", { d: 6 });

除了上面介紹的 set 和 get 方法之外,jsonpointer 這個庫還提供了一個 compile 方法,該方法會返回一個新的 JSON Pointer 對象,讓我們更方便地訪問 JSON 對象特定路徑的屬性。

const pointer = jsonpointer.compile("/foo");
pointer.get(obj); // returns 6
pointer.set(obj, 1); // sets obj.foo = 1

JSON Pointer 在 LangchainJS 中的應用

在 LangchainJS 的 JSONLoader[3] 中,也用到了 jsonpointer 這個庫。使用該庫的主要目的是為了能快速從 JSON 對象中,提取用戶想要的數據。

使用示例

example.json

{
  "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"
    }
  }
}

JSONLoader

export declare class JSONLoader extends TextLoader {
    pointers: string[];
    constructor(filePathOrBlob: string | Blob, pointers?: string | string[]);
}

假設我們只想要提取 from 和 surname 的信息:

import { JSONLoader } from "langchain/document_loaders/fs/json";

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

const docs = await loader.load();

通過設置 pointers 參數的值為 ["/from", "/surname"],我們就實現了快速提取 JSON 對象中想要的數據。

[
  Document {
    pageContent: 'LinkedIn Job',
    metadata: { source: './src/json/example.json', line: 1 }
  },
  Document {
    pageContent: 'LinkedIn Job2',
    metadata: { source: './src/json/example.json', line: 2 }
  },
  Document {
    pageContent: 'bob',
    metadata: { source: './src/json/example.json', line: 3 }
  }
]

參考資料

[1]JSON Pointer: https://datatracker.ietf.org/doc/html/rfc6901

[2]jsonpointer: https://www.npmjs.com/package/jsonpointer

[3]JSONLoader: https://js.langchain.com/docs/modules/data_connection/document_loaders/json

責任編輯:武曉燕 來源: 全棧修仙之路
相關推薦

2021-07-28 06:10:47

拖拽設計器 transmat

2020-11-16 13:38:31

PostMessage

2021-11-10 06:38:01

Python鏈式操作

2021-10-29 07:49:22

Spring事務管理

2021-09-05 07:55:37

前端Emoji 表情

2022-07-04 08:16:43

JSONJSON庫對象

2012-07-13 11:32:16

網絡出口

2019-02-26 14:43:50

http狀態碼前端

2024-08-02 08:38:20

Controller接口地址

2020-09-14 11:26:54

BinlogCanal數據庫

2024-02-04 12:21:59

AI模型

2021-03-08 07:46:53

Git開源控制系統

2020-09-29 06:45:49

JDK

2023-11-16 20:37:01

2022-05-11 09:51:10

云計算公共云

2021-08-05 18:34:55

IntelliJ ID高效

2020-08-14 08:19:25

Shell命令行數據

2020-12-15 08:05:40

路由器服務器網絡層

2019-01-29 10:00:59

GitHub開源搜索

2021-07-28 06:51:08

Nacos代理模式
點贊
收藏

51CTO技術棧公眾號

999一区二区三区| a级黄色小视频| 欧美精品一区二区久久| 久久亚洲综合av| 日本aa在线观看| 国产精品久久久久影院| 污黄网站在线观看| 精品免费一区二区三区| 亚洲欧洲专区| 国产日韩精品一区二区| 一本久道久久久| 国产美女永久无遮挡| 亚洲欧美日韩在线| 欧美videosex性极品hd| 久久久久久香蕉网| 欧美成人久久| 精品日本一区二区三区在线观看 | 欧美日韩一二区| 3p在线观看| 日本视频久久久| 成人av电影在线网| 国产福利视频在线| av在线不卡电影| 成人av毛片| 国产精品大片wwwwww| 91免费看`日韩一区二区| 欧洲美女精品免费观看视频| 国产精品va在线观看无码| 国产亚洲美女久久| 亚洲精品久久久久久国产精华液| 亚洲成在人线免费观看| 日日噜噜夜夜狠狠视频| 插插插亚洲综合网| 鲁大师影院一区二区三区| 亚洲久久中文字幕| 亚洲电影中文字幕| 成人免费看黄yyy456| h片在线播放| 国内一区二区三区在线视频| 中文字幕欧美三区| 国产三级伦理在线| 亚洲欧美日韩不卡一区二区三区| 中文字幕成人网| 乱人伦中文视频在线| 亚洲最大福利视频| 亚洲国产日韩综合久久精品| 全部免费毛片在线播放网站| 欧美亚洲另类激情另类| 国产精品美日韩| 爱情电影网av一区二区| 欧美激情中文网| 我不卡影院28| 日本不卡一区| 亚洲欧美日韩爽爽影院| 亚洲作爱视频| 2019中文字幕在线视频| 狠狠干狠狠久久| 女人高潮被爽到呻吟在线观看| 国产日韩专区在线| 欧美国产专区| 天堂资源中文在线| 亚洲一二三区在线| 成人福利视频在线看| 中文字幕资源网在线观看免费| 欧美日本精品一区二区三区| 久久久免费毛片| 国产精品vvv| 在线免费福利| 久久久国产欧美| 国产一区二区三区黄| 久久成人精品视频| 欧美一级在线视频| 中文字幕制服丝袜一区二区三区 | 国产69精品久久久久毛片| 欧美日韩在线资源| 欧美日韩一区二| 亚洲欧美激情四射在线日| 亚洲猫色日本管| 久久99国产精品免费| 国产欧美一区二区三区精品观看| 性欧美freesex顶级少妇| 椎名由奈jux491在线播放| 国产精品久久久一区| 欧美精品一区二区三区蜜桃| 午夜精品久久久久久久99樱桃| 久久国产夜色精品鲁鲁99| 毛片不卡一区二区| aaa在线观看| 日本精品一区二区三区四区| 久久精品国产96久久久香蕉| 日韩三级中文字幕| 亚洲日本青草视频在线怡红院 | 性欧美video另类hd尤物| 2019中文字幕视频| wwwcom羞羞网站| 韩国av网站在线| 成人午夜电影免费在线观看| 欧美色videos| 久久精品国产www456c0m| 久久激情电影| 99视频高清| 999香蕉视频| 亚洲精品一区视频| 中文av在线全新| 亚洲一二三区视频| 正在播放日韩欧美一页 | 色视频在线播放| 尤物视频免费在线观看| 在线观看污网站| 欧美xx网站| 国产igao激情在线入口| 男人的天堂www| 激情综合网俺也去| 日本18视频网站| 免费特级黄毛片| 羞羞的视频网站| 四虎国产精品永远| 日韩黄色影院| 97视频精彩视频在线观看| 麻豆电影在线| 国产主播色在线| 日本性视频网| 欧美电影在线观看一区| 国内精品视频| 欧美一区=区三区| 免费成人结看片| 蜜桃av一区二区| 一区二区三区不卡视频| 中文字幕日韩在线播放| 九九九九精品九九九九| 久久综合色88| 成人看片在线| 成人免费视频网站在线看| 白浆视频在线观看| 欧美日韩国产高清| 国产欧美一区在线| 中文字幕日韩欧美在线视频| 成人免费看片网址| 男生操女生视频网站| 欧美性www| 久久三级视频| 欧美日韩五月天| 青青在线视频一区二区三区| 国产精品扒开腿做| 日韩一区二区电影在线观看| 激情综合网婷婷| 在线播放免费| 国产66精品| 美女一区二区三区在线观看| 亚洲午夜久久久久久久久电影网 | 免费观看成人性生生活片| 亚洲福利合集| 欧美日韩爆操| 国产精品国产三级国产有无不卡| 五月综合激情日本mⅴ| 中文欧美在线视频| 五月婷婷激情久久| 天堂精品久久久久| 丝袜a∨在线一区二区三区不卡 | 欧美日韩国产91| 久久激情视频久久| 96精品久久久久中文字幕| 91亚洲国产成人精品性色| 视频在线观看成人| 粉嫩虎白女毛片人体| gay视频丨vk| 国产精品一区二区三区视频网站| 电影在线观看一区二区| 爱高潮www亚洲精品| 午夜精品视频一区二区三区在线看| 亚洲欧洲视频| 一色桃子久久精品亚洲| 久久国产精品影片| 中文字幕乱码人妻综合二区三区| aaa国产精品视频| 欧美性xxxx极品hd欧美风情| 欧美精品国产精品久久久| 日韩一区二区三区免费| 伦理av在线| 久久一区中文字幕| 欧美人交a欧美精品| 日韩av电影免费| 成人高清视频在线观看| 91精品国产综合久久香蕉最新版| 日韩精品亚洲人成在线观看| 亚洲人成7777| 加勒比海盗1在线观看免费国语版| 国产a久久精品一区二区三区| 欧美一区二区大片| 国产成人午夜电影| 国内成人精品2018免费看| 97国产精品视频| 免费看涩涩视频| 欧美激情国产在线| 欧美日本一区二区三区四区| 粉嫩av四季av绯色av第一区| 草草在线视频| 一区二区三区中文字幕电影| 国产精品播放| 亚洲一区导航|