You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使<pre>标签内jws属性文本与verificationMethod保持一致缩进?

解决JSON中JWS属性缩进对齐的问题

我明白你想让jws属性的换行内容和verificationMethod保持相同的缩进层级(也就是你标注的红条位置),这里有几个实用的解决方案,分场景给你说明:

1. 手动调整(适合手动编写JSON的场景)

如果是你自己手写这段JSON,最简单的方式就是在jws值的换行开头,手动添加和verificationMethod属性名起始位置一致的空格(或制表符)。

要是你需要把超长的JWS字符串拆成多行(JSON允许字符串内换行,只要用转义符\),可以这样写:

{
  "someOtherProperty": "example_value",
  "verificationMethod": "proof_verification_method",
  "jws": "YLkE1a599r244BP9SZ99owq93B411d3iU2H7589X7Tx7zUQPJ8VLblPtm2PL4bGR0Y2tym630tzEpTtFNoD41Oy8o5QMpSSa8Cf1C5M55Vz228Sy73eMGO3n87v59o5Cz0o6x8N118761I860Z574g1OhW1C19LiLv96h883101690D3AYRE7m63i4YmE26t6LV2s7Ax27TsxRe7Q542YPj03M4hP2mMq743459n3w5B84vzIU8UtVaNf036E115641aO8OsED9c5FMl50320L6JW77a92t4J45G9Ht6NGw8vtR75V431x96756g780R6715CF43396E0s57H1S5Xa7921l80knj73F3H5kG9F14735JIr3LnI4Yod9iPD25p42DhQXx1nKF881A432d895D8K3rFJFk93mBI3h97MI9P3vf52506785oX1333v9z3W6ZmK5t5Eh1xWkijv3Wd832oDMhWVGU40S4Kh7q29c4Ym405H8"
}

这样拆分后,每一行的JWS片段都会和verificationMethod保持对齐。

2. 用格式化工具自动处理(适合已有JSON需要美化的场景)

很多JSON格式化工具支持自定义换行规则,你可以设置“超过指定长度自动换行”,并让换行后的内容保持和属性名一致的缩进:

  • VS Code:使用自带的格式化功能(快捷键Ctrl+Shift+I),可以在设置里搜索json.format.maxLineLength,设置一个合适的数值(比如80),工具会自动把长字符串拆成多行并对齐。
  • 本地/在线工具:比如一些JSON美化工具,找到“换行长字符串”或类似选项,设置缩进层级和行宽,就能一键生成对齐后的JSON。

3. CSS视觉对齐(适合网页显示时不修改JSON内容的场景)

如果只是在网页的<pre>标签里显示时需要对齐,不想修改JSON本身的内容,可以通过CSS调整视觉效果:

pre {
  font-family: inherit;
  white-space: break-spaces;
  word-break: break-all;
  /* 调整text-indent和padding-left的数值来匹配你的缩进需求 */
  text-indent: -2em;
  padding-left: 2em;
}

这个方法是通过文本缩进和内边距的配合,让换行后的内容自动对齐到目标位置,属于视觉层面的调整,不会改变JSON的实际内容。

4. 代码生成时自定义序列化(适合程序生成JSON的场景)

如果这段JSON是通过代码生成的,你可以在序列化的时候自定义逻辑,让长字符串自动换行并缩进。比如在JavaScript中:

const data = {
  verificationMethod: "proof_verification_method",
  jws: "YLkE1a599r244BP9SZ99owq93B411d3iU2H7589X7Tx7zUQPJ8VLblPtm2PL4bGR0Y2tym630tzEpTtFNoD41Oy8o5QMpSSa8Cf1C5M55Vz228Sy73eMGO3n87v59o5Cz0o6x8N118761I860Z574g1OhW1C19LiLv96h883101690D3AYRE7m63i4YmE26t6LV2s7Ax27TsxRe7Q542YPj03M4hP2mMq743459n3w5B84vzIU8UtVaNf036E115641aO8OsED9c5FMl50320L6JW77a92t4J45G9Ht6NGw8vtR75V431x96756g780R6715CF43396E0s57H1S5Xa7921l80knj73F3H5kG9F14735JIr3LnI4Yod9iPD25p42DhQXx1nKF881A432d895D8K3rFJFk93mBI3h97MI9P3vf52506785oX1333v9z3W6ZmK5t5Eh1xWkijv3Wd832oDMhWVGU40S4Kh7q29c4Ym405H8"
};

// 自定义序列化函数,拆分长字符串并添加缩进
function stringifyWithAlignedLineBreaks(obj, indent = 2, maxLineLength = 80) {
  return JSON.stringify(obj, (key, value) => {
    if (typeof value === 'string' && value.length > maxLineLength) {
      const lineIndent = ' '.repeat(indent * 2); // 匹配属性的缩进层级
      const chunks = value.match(new RegExp(`.{1,${maxLineLength}}`, 'g'));
      return chunks.join(`\\n${lineIndent}`);
    }
    return value;
  }, indent);
}

// 生成对齐后的JSON
console.log(stringifyWithAlignedLineBreaks(data));

这段代码会把超长的JWS字符串拆成多行,每一行都自动添加对应缩进,和verificationMethod保持一致。

内容的提问来源于stack exchange,提问作者Antonio Santoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:24:05