讲师中心 微信公众号
AI工具推荐 视频效率加速

如何正确将 JSONObject 发送至 AWS SQS 队列

千芳姑娘_5787

千芳姑娘_5787

发布时间:2026-01-29 21:43:00

|

420人浏览过

|

来源于php中文网

原创

如何正确将 JSONObject 发送至 AWS SQS 队列

aws sqs 要求消息体必须是合法的 json 字符串,而 `jsonobject` 是 java 对象,并非字符串;直接传递 `jsonobject` 会导致序列化异常或空内容(如 `{empty:true}`),需显式调用 `.tostring()` 转为标准 json 字符串后再发送。

在使用 Spring Cloud AWS 的 QueueMessagingTemplate.convertAndSend() 方法向 Amazon SQS 发送消息时,底层会依赖 Jackson 或默认的 MessageConverter 对传入对象进行序列化。该方法对不同类型的输入行为如下:

  • ✅ String 类型:直接作为消息体发送,无需额外序列化;
  • ✅ 自定义 Java Bean(如 TaskMessage):由 Jackson 自动序列化为标准 JSON 字符串(前提是字段可访问、无循环引用等);
  • ❌ org.json.JSONObject 类型:它不是标准 POJO,也不实现 Serializable 的语义化序列化契约;Spring 默认的 MappingJackson2MessageConverter 无法正确识别其结构,可能触发其内部 empty 标志逻辑(尤其在老版本 org.json:json 中),最终导致消息体被错误地序列化为 { "empty": true }。

正确做法:始终发送 JSON 字符串

应确保传入 convertAndSend() 的参数是 String 类型,且内容为格式良好的 JSON:

public String toJson() throws JSONException {
    JSONObject json = new JSONObject();
    json.put("payload", this.payload);
    json.put("id", this.taskId);
    return json.toString(); // ← 关键:转为字符串!
}

然后调用:

queueMessagingTemplate.convertAndSend(queueUrl, task.toJson());

补充说明与最佳实践

  • ⚠️ 不要依赖 JSONObject 对象本身作为消息载荷 —— 它是工具类,不是数据载体;

    Amazon Launch Playbook
    Amazon Launch Playbook

    生成定制化的90天亚马逊产品发布计划,涵盖类目选择、listing优化、库存策略和分阶段营销,适用于新品

    下载
  • ✅ 推荐统一使用 Jackson(ObjectMapper)处理序列化,更可控、兼容性更好:

    private static final ObjectMapper mapper = new ObjectMapper();
    
    public String toJson() throws JsonProcessingException {
        return mapper.writeValueAsString(Map.of(
            "payload", this.payload,
            "id", this.taskId
        ));
    }
  • ? 若必须使用 org.json,请确认依赖版本(建议 ≥ 20230227),并避免嵌套 JSONObject/JSONArray 中含非标准类型(如 LocalDateTime),否则 toString() 可能抛异常;

  • ? 测试建议:发送前打印 json.toString() 结果,验证是否输出预期 JSON(如 {"payload":"data","id":"123"}),而非 {} 或 {empty:true}。

总之,SQS 消息体本质是纯文本协议,一切需归结为合法 JSON 字符串——这是集成中最易忽视却最关键的一环。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

2611

2025.08.06

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

477

2026.01.26

Java 微服务与 Spring Cloud 实战
Java 微服务与 Spring Cloud 实战

本专题讲解 Java 微服务架构的开发与实践,重点使用 Spring Cloud 实现服务注册与发现、负载均衡、熔断与限流、分布式配置管理、API Gateway 和消息队列。通过实际项目案例,帮助开发者理解 如何将传统单体应用拆分为高可用、可扩展的微服务架构,并有效管理和调度分布式系统中的各个组件。

348

2026.02.05

Java Spring Cloud微服务配置中心与服务治理实践
Java Spring Cloud微服务配置中心与服务治理实践

本专题围绕 Java 微服务体系中的配置管理与服务治理展开,重点讲解 Spring Cloud 在分布式系统中的核心组件应用。内容涵盖配置中心设计、服务注册与发现、负载均衡、熔断降级以及分布式配置动态刷新机制。通过实际项目案例,帮助开发者构建高可用、易扩展的微服务架构体系。

254

2026.04.07

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2155

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3302

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1116

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

3799

2025.09.10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn