Bitbybit Docs
    Preparing search index...

    Class JSONBitByBit

    读取和更改 JSON 数据中的值。像 $.parts[0].name 这样的路径遵循 JSONPath 语法:$ 是根,.name 进入一个属性,[0] 进入列表项,..name 在任意深度搜索。这里的方法按路径查询、设置和列出,处理单个属性,并通过应用程序预览数据;每次更改都以更改后的副本返回,输入保持不变。

    Index

    Constructors

    create

    • 给出一个没有属性的新空对象,作为 setValueOnPropsetValue 的起点。

      Returns any

      空对象

      const settings = bitbybit.json.createEmpty();
      const withWidth = bitbybit.json.setValueOnProp({ json: settings, property: "width", value: 10 });

    jsonpath

    • 找出 JSON 中 JSONPath 表达式匹配的每个值,并以列表给出,即使只有一个。

      $.parts[*].name 列出所有零件名称,$..radius 列出任意深度的每个半径;方括号中的 JSONPath 过滤器按条件缩小匹配范围。

      Parameters

      • inputs: QueryDto

        JSON 和 JSONPath 表达式

      Returns any

      以列表表示的匹配值

      const names = bitbybit.json.query({ json: model, query: "$.parts[*].name" });
      
    • 在 JSONPath 表达式到达的每个对象上将属性 prop 设为 value,给出 JSON 更改后的副本。

      path 指向父对象,prop 指定它们上面的属性:path: "$.parts[*]", prop: "visible" 更改每个零件。不是对象的值会抛出错误。

      Parameters

      • inputs: SetValueDto

        JSON、指向父对象的路径、属性名称和值

      Returns any

      更改后的副本

      const hidden = bitbybit.json.setValue({ json: model, path: "$.parts[*]", prop: "visible", value: false });
      
    • 一次应用多个 setValue 更改:pathspropsvalues 的第 i 项构成一次更改,按顺序应用于 JSON 的副本。

      Parameters

      Returns any

      更改后的副本

      const updated = bitbybit.json.setValuesOnPaths({ json: model, paths: ["$", "$.parts[0]"], props: ["name", "visible"], values: ["Assembly", false] });
      
    • 列出 JSONPath 表达式匹配的每个值的路径,每个都是从根开始的完整路径,例如 $['parts'][0]['name'],而不是值本身。

      Parameters

      • inputs: PathsDto

        JSON 和 JSONPath 表达式

      Returns any

      匹配项的路径,以字符串列表表示

      const where = bitbybit.json.paths({ json: model, query: "$..radius" });
      

    preview

    • 将 JSON 交给运行中的应用程序显示并提供保存为文件的选项;预览的外观由应用程序决定,值为空时什么也不发生。

      Parameters

      Returns void

      bitbybit.json.previewAndSaveJson({ json: model });
      
    • 将 JSON 交给运行中的应用程序显示;预览的外观由应用程序决定,值为空时什么也不发生。

      Parameters

      Returns void

      bitbybit.json.previewJson({ json: model });
      

    props

    • 将 JSON 对象的一个顶层属性设为某值,给出更改后的副本;输入保持原样,不存在的属性会被添加。

      Parameters

      Returns any

      更改后的副本

      const updated = bitbybit.json.setValueOnProp({ json: settings, property: "width", value: 20 });
      
    • 找出列表中第一个其属性等于给定值的对象(以严格相等比较)并返回它;没有匹配时给出 undefined。

      超出单个属性的需求,请使用带过滤器的 query

      Parameters

      Returns any

      第一个匹配的对象,或 undefined

      const part = bitbybit.json.getJsonFromArrayByFirstPropMatch({ jsonArray: parts, property: "name", match: "lid" });
      
    • 读取 JSON 对象的一个顶层属性;缺失的属性给出 undefined。

      Parameters

      Returns any

      属性的值

      const width = bitbybit.json.getValueOnProp({ json: settings, property: "width" });
      

    transform

    • JSON.stringify 一样将任意与 JSON 兼容的值转成其 JSON 文本,单行且无缩进。

      Parameters

      Returns string

      JSON 文本

      const text = bitbybit.json.stringify({ json: { width: 10, points: [[0, 0, 0], [1, 1, 1]] } });
      
    • JSON.parse 一样将 JSON 文本转成它描述的值;不是有效 JSON 的文本会抛出错误。

      Parameters

      Returns any

      解析后的值

      const points = bitbybit.json.parse({ text: "[[0, 0, 0], [1, 1, 1]]" });