分类

对象赋值

使用 lodash _.assign 将来源属性赋给目标对象

将来源对象的自有可枚举属性分配到目标对象。

亮点:

  • 使用 lodash _.assign
  • 后面的来源会覆盖前面的值
  • 返回合并后的对象

示例:

  • 目标:{"a":1}
  • 来源 1:{"b":2}
  • 来源 2:{"a":3}
  • 结果:{"a":3,"b":2}

输入目标 JSON 对象

第一个来源对象

可选的来源对象

可选的来源对象

关键信息

分类
Data Processing
输入类型
textarea
输出类型
text
样本覆盖
4
支持 API
Yes

概览

这是一个基于 lodash `_.assign` 的对象赋值工具,用于将一个或多个来源对象的自有可枚举属性快速合并到目标对象中。它能高效整合多个数据源,并自动处理属性覆盖,是数据处理和配置合并的实用助手。

适用场景

  • 需要合并多个配置对象或数据对象时。
  • 需要将多个 API 响应或数据源整合为一个统一对象时。
  • 需要用一个对象的属性覆盖另一个对象的默认值时。

工作原理

  • 在“目标对象”输入框中,输入作为基础的 JSON 对象。
  • 在“来源”输入框中,依次输入一个或多个要合并的 JSON 对象。
  • 工具使用 lodash `_.assign` 方法,将所有来源对象的属性按顺序分配给目标对象。
  • 后面的来源对象中的属性会覆盖前面相同名称的属性,最终输出合并后的新对象。

使用场景

合并应用程序的默认配置与用户自定义配置。
将来自不同微服务的响应数据聚合成一个前端可用的数据对象。
在对象初始化时,用一组预设值覆盖另一组默认值。

用户案例

1. 合并应用配置

后端开发者
背景原因
开发一个 Node.js 应用,有一份基础的默认配置文件 `default.json`,以及一份针对生产环境的覆盖配置 `production.json`。
解决问题
需要将生产环境的配置安全地合并到默认配置中,生成最终的运行配置,且不能手动逐个字段复制粘贴。
如何使用
将 `default.json` 的内容粘贴到“目标对象”输入框,将 `production.json` 的内容粘贴到“来源 1”输入框。
示例配置
目标对象:{"port": 3000, "db": {"host": "localhost", "pool": 5}, "logLevel": "debug"}
来源 1:{"port": 8080, "db": {"host": "prod-db-server"}, "apiKey": "secret123"}
效果
得到合并后的配置对象:{"port": 8080, "db": {"host": "prod-db-server"}, "logLevel": "debug", "apiKey": "secret123"}。注意 `db` 对象被整体替换,`port` 被覆盖,`logLevel` 保留,`apiKey` 被新增。

2. 聚合用户信息

前端工程师
背景原因
页面需要展示用户资料,基础信息来自 `/api/user`,而用户的个性化设置来自 `/api/user/settings`。
解决问题
两个 API 返回的是独立的对象,需要在前端将它们合并成一个完整的用户对象,以便统一渲染。
如何使用
将 `/api/user` 的响应对象输入到“目标对象”,将 `/api/user/settings` 的响应对象输入到“来源 1”。
效果
生成一个包含用户所有信息(如 id、name、avatar 和 theme、language 等设置)的单一对象,简化了前端的数据绑定逻辑。

3. 覆盖默认游戏设置

游戏玩家
背景原因
一款游戏有默认的图形和控制设置。玩家想调整其中几项,但希望保留其他所有默认值。
解决问题
不想手动查找并修改每一个设置项,只想提交自己改动的部分,让系统自动合并。
如何使用
将游戏的默认设置对象作为“目标对象”,将包含自己修改项(如 `{"resolution": "2560x1440", "mouseSensitivity": 1.2}`)的对象作为“来源 1”。
效果
快速生成一份个性化配置,其中 `resolution` 和 `mouseSensitivity` 是新值,而其他所有设置(如音量、按键绑定)均保持默认。

用 Samples 测试

json

相关专题

常见问题

最多支持合并多少个来源对象?

工具支持一个目标对象和最多三个来源对象。

这个操作会修改我输入的原始对象吗?

不会。工具返回的是一个合并后的新对象,不会修改您输入的任何原始对象。

如果输入的不是有效的 JSON 对象会怎样?

工具会提示输入格式错误,请确保输入的是有效的 JSON 格式。

如何确保某个来源的特定属性不被后续来源覆盖?

您需要调整来源对象的输入顺序。将包含您想保留属性的对象放在后面输入,因为后输入的来源会覆盖先前的同名属性。

这个工具支持深度合并(递归合并嵌套对象)吗?

不支持。本工具使用的是 `_.assign`,它只进行浅合并。对于嵌套对象,来源对象的整个嵌套对象会直接替换目标对象中的对应属性。

API 文档

请求端点

POST /zh/api/tools/assign-object

请求参数

参数名 类型 必填 描述
targetObject textarea 输入目标 JSON 对象
source1 textarea 第一个来源对象
source2 textarea 可选的来源对象
source3 textarea 可选的来源对象

响应格式

{
  "result": "Processed text content",
  "error": "Error message (optional)",
  "message": "Notification message (optional)",
  "metadata": {
    "key": "value"
  }
}
文本: 文本

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-assign-object": {
      "name": "assign-object",
      "description": "使用 lodash _.assign 将来源属性赋给目标对象",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=assign-object",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]