当前位置: 首页 > news >正文

复杂json解析(其中有一个key的value是json格式的字符串)

app上报的参数如下:

{"clientId": "8517895440514039afcf6d3e5d7832ae","dua": "SN=DOCKCJPH90_GA&VN=900042418&BN=0&VC=Xiaomi&MO=M2012K11AC&RL=1080_2239&CHID=unknown_unknown&LCID=&RV=&OS=Android13&DV=V1","phone": "15071343418","proxyNode": [{"channelCode": "kuaifenxiao","clientId": "8517895440514039afcf6d3e5d7832ae","cookie": "did=web_xwaap1nt5xdqr60axnls5reb9u0amfb3; userId=247914626; sid=kuaishou.shop.b; kuaishou.shop.b_st=ChJrdWFpc2hvdS5zaG9wLmIuc3QSoAFJS2UrZiuakO75bVK3FJQq8SQ9C6ztcMNfyd_m7biZQyfMuZ6Lhn6YYEu8YCagfGi4LzAD58G3DHnf8yZGwbLaNuGK286yUxWSydlfwf23Lw4kLR33GPmkN-6fiszeJBQ-U8FvihnbpF4k1uZPnDjBstbNduCCxyKlHH5B5uUCMy3YkCW3t4UE533HGhgDyj0LwqnQjtOjTV9awG7f2vIcGhKd_ML3fWEjTvpP6f9oisfIpAIiILrfmxjQ7acolLSEaaNOXIfcp0ITOpSFhJNSBYQut2NHKAUwAQ; kuaishou.shop.b_ph=8682d98ae1291dacdcdbba835f0794f31e5f","other": "{\"userId\":247914626,\"userNick\":\"duzzi\",\"promotionAbility\":false}","phone": "15071343418","uniqueId": ""},{"channelCode": "douyin","clientId": "8517895440514039afcf6d3e5d7832ae","cookie": "_tea_utm_cache_2906=undefined; ttwid=1%7CnWBixC4hbDtwqjIz8ph7PTjSA_06-mIFxsjfKOzsuWI%7C1715738511%7C3b728a1109088f7357acb27710208586cf89fd55d5f10a7cdff04c425b941260; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCTUptc2tmK1E2K3RIbmZ3VTY3QjUvZ3pLTVUxdmJQRXBYTk4rRHhNZDdLSTFOWVkwc2Evc2xnbVhtSjJETXNVSXBZaFRqYmFKSGpUeHM0Qit1clhNTXc9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; bd_ticket_guard_client_web_domain=2; passport_csrf_token=d3fda2e10c9f6722cd9f7e2c40bf3751; passport_csrf_token_default=d3fda2e10c9f6722cd9f7e2c40bf3751; msToken=59BiDkrxFVqIzIonFt7gvhaa5HmX_0ncHpFvHWFclvjlhzM7fMRVqWgBySOvEyLGMz1RDdZMpaStjpZGWqKN9Xkb12DwQPfucQPyylPKIyEGLO764l_mluunQnm3; tt_scid=DD4adatc6sh6zwZxLMMSqbglPqMPgJx8YqZY.HTSXV9RdfVnMIthNLOCB6My3xP13264; passport_assist_user=CjxOP0DkL7yqSHt3RyAzf1RwfdcgXq7G3JDw3RIIcdnq0IqfWLF-67XFwq7Dct1GyhVokCunTs7Ebc9959caSgo8YRyhb2oFn0wrhWlp-awSs5oH6XIFR-wEAeADN5FddWNSIo3adrgTeJqYcKEoYBSRJKB9CXwdFhtHGw1QEICq0Q0Yia_WVCABIgED8pgI6w%3D%3D; n_mh=FzeIA2bdW3iCBvrz1qr1PcdgQMqdsPt-UXF2W7RNLF8; sso_uid_tt=c16a5e7f16cfd256313a4a8c9e655b1a; sso_uid_tt_ss=c16a5e7f16cfd256313a4a8c9e655b1a; toutiao_sso_user=1684f0da2dd53ed3b328f9d402b91aff; toutiao_sso_user_ss=1684f0da2dd53ed3b328f9d402b91aff; sid_ucp_sso_v1=1.0.0-KDY4OGVlMjFjZTIzNGIxODAyM2FhNjc1OWQ4MTQwNmYxNWU4OTc3MjgKHQjUw8nrvQEQpq-QsgYY2hYgDDCF6Pq-BTgGQPQHGgJsZiIgMTY4NGYwZGEyZGQ1M2VkM2IzMjhmOWQ0MDJiOTFhZmY; ssid_ucp_sso_v1=1.0.0-KDY4OGVlMjFjZTIzNGIxODAyM2FhNjc1OWQ4MTQwNmYxNWU4OTc3MjgKHQjUw8nrvQEQpq-QsgYY2hYgDDCF6Pq-BTgGQPQHGgJsZiIgMTY4NGYwZGEyZGQ1M2VkM2IzMjhmOWQ0MDJiOTFhZmY; msToken=rTpCZ4RO1QbkQXIfs-Wrk7xGyCvImv6NOQewVFu4zIVm5Um8IAfjuhEtXjjfSZO9noN9mbXFBD1awSJ-N2pa8Petu6Oz3bo9-awUINoTM_YEx6Gp_DvJCcxKpjw5; odin_tt=7e1e5fac28232bed75e2ce3ecbf70cc87e80c1b34bc56312de4aa05dc02e6e4f990aca679b59e5be079e6fa347525de1; passport_auth_status=d533947c6fbc84f49ae246acf1cd3066%2C; passport_auth_status_ss=d533947c6fbc84f49ae246acf1cd3066%2C; bd_ticket_guard_server_data=eyJ0aWNrZXQiOiI2ZTQ2ZDNkMTQ4NTQ2ZWRjMDZiYTMyMGQ0NDg1ODEyYiIsInRzX3NpZ24iOiJ0cy4xLjAwODA4MWViMGEyYmIwYjMzZjc2NWQ2MTA5MmNlY2M1ZWZjMTNmNzcwODM0ZjU2OTY3YWQ3M2FmMTkwNWJmZTljNGZiZTg3ZDIzMTljZjA1MzE4NjI0Y2VkYTE0OTExY2E0MDZkZWRiZWJlZGRiMmUzMGZjZThkNGZhMDI1NzVkIiwiY2xpZW50X2NlcnQiOiJwdWIuQk1KbXNrZitRNit0SG5md1U2N0I1L2d6S01VMXZiUEVwWE5OK0R4TWQ3S0kxTllZMHNhL3NsZ21YbUoyRE1zVUlwWWhUamJhSkhqVHhzNEIrdXJYTU13PSJ9; bd_ticket_guard_web_domain=2; sid_guard=6e46d3d148546edc06ba320d4485812b%7C1715738536%7C5184000%7CSun%2C+14-Jul-2024+02%3A02%3A16+GMT; uid_tt=9419f8f75cb08d26cd22dda8547af9d3; uid_tt_ss=9419f8f75cb08d26cd22dda8547af9d3; sid_tt=6e46d3d148546edc06ba320d4485812b; sessionid=6e46d3d148546edc06ba320d4485812b; sessionid_ss=6e46d3d148546edc06ba320d4485812b; sid_ucp_v1=1.0.0-KDM5NDg2NGEyNTQ1NmE4ZGU0M2YxZDJjMDE4MjEyODAxNTBlMmNiNGEKGQjUw8nrvQEQqK-QsgYY2hYgDDgGQPQHSAQaAmxmIiA2ZTQ2ZDNkMTQ4NTQ2ZWRjMDZiYTMyMGQ0NDg1ODEyYg; ssid_ucp_v1=1.0.0-KDM5NDg2NGEyNTQ1NmE4ZGU0M2YxZDJjMDE4MjEyODAxNTBlMmNiNGEKGQjUw8nrvQEQqK-QsgYY2hYgDDgGQPQHSAQaAmxmIiA2ZTQ2ZDNkMTQ4NTQ2ZWRjMDZiYTMyMGQ0NDg1ODEyYg; csrf_session_id=fbeac00e4e14f1eef5c0ca3f2bb7b9c7","other": "{\"uid\":\"50959901140\",\"nickname\":\"duzzi\",\"with_fusion_shop_entry\":false,\"localStorage\":{\"security-sdk\\/s_sdk_crypt_sdk\":\"{\\\"data\\\":\\\"{\\\\\\\"ec_privateKey\\\\\\\":\\\\\\\"-----BEGIN PRIVATE KEY-----\\\\\\\\r\\\\\\\\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQggReMEBDyckfHliYY\\\\\\\\r\\\\\\\\nLI6fsK8ajep\\/MLxPGhDBfWpeboahRANCAATCZrJH\\/kOvrR538FOuwef4MyjFNb2z\\\\\\\\r\\\\\\\\nxKVzTfg8THeyiNTWGNLGv7JYJl5idgzLFCKWIU422iR408bOAfrq1zDM\\\\\\\\r\\\\\\\\n-----END PRIVATE KEY-----\\\\\\\\r\\\\\\\\n\\\\\\\",\\\\\\\"ec_publicKey\\\\\\\":\\\\\\\"-----BEGIN PUBLIC KEY-----\\\\\\\\r\\\\\\\\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwmayR\\/5Dr60ed\\/BTrsHn+DMoxTW9\\\\\\\\r\\\\\\\\ns8Slc034PEx3sojU1hjSxr+yWCZeYnYMyxQiliFONtokeNPGzgH66tcwzA==\\\\\\\\r\\\\\\\\n-----END PUBLIC KEY-----\\\\\\\\r\\\\\\\\n\\\\\\\",\\\\\\\"ec_csr\\\\\\\":\\\\\\\"-----BEGIN CERTIFICATE REQUEST-----\\\\\\\\r\\\\\\\\nMIIBEjCBuQIBADAnMQswCQYDVQQGEwJDTjEYMBYGA1UEAwwPYmRfdGlja2V0X2d1\\\\\\\\r\\\\\\\\nYXJkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwmayR\\/5Dr60ed\\/BTrsHn+DMo\\\\\\\\r\\\\\\\\nxTW9s8Slc034PEx3sojU1hjSxr+yWCZeYnYMyxQiliFONtokeNPGzgH66tcwzKAw\\\\\\\\r\\\\\\\\nMC4GCSqGSIb3DQEJDjEhMB8wHQYDVR0RBBYwFIISY3JlYXRvci5kb3V5aW4uY29t\\\\\\\\r\\\\\\\\nMAoGCCqGSM49BAMCA0gAMEUCIQCXOKAEftf3wSvYHQziKj\\/MEwxTQ5WIKSLzBm7f\\\\\\\\r\\\\\\\\nX\\/kLAgIgQXsACAB69Crnl6ETSQXZMvoMEh79EG7WGK2A9Un84Lk=\\\\\\\\r\\\\\\\\n-----END CERTIFICATE REQUEST-----\\\\\\\\r\\\\\\\\n\\\\\\\"}\\\"}\"}}","phone": "15071343418","uniqueId": ""},{"channelCode": "juliangbaiying","clientId": "8517895440514039afcf6d3e5d7832ae","cookie": "","other": "","phone": "","uniqueId": ""},{"channelCode": "shipinhao","clientId": "8517895440514039afcf6d3e5d7832ae","cookie": "","other": "","phone": "","uniqueId": ""},{"channelCode": "kuaishou","clientId": "8517895440514039afcf6d3e5d7832ae","cookie": "","other": "","phone": "","uniqueId": ""}],"sUserId": "100005","version": "900042418"
}

其中other本身是一个字符串,而这个字符串的内容是JSON格式的。

上报接口:
在这里插入图片描述
在这里插入图片描述

我要获取other key中的localStorage key的中所有键值对:

正确做法:

JsonObject jsonObject = GsonUtil.toBean(proxyNodeInfo.getOther(), JsonElement.class).getAsJsonObject();JsonObject localStorage = jsonObject.get("localStorage").getAsJsonObject();
Map<String, String> hashMap = new HashMap<String, String>() {{for (Entry<String, JsonElement> entry : localStorage.entrySet()) {put(entry.getKey(), entry.getValue().getAsString());}
}};

在这里插入图片描述

原来的错误做法:

Map<String,Object> otherInfo= GsonUtil.toBean(StringEscapeUtils.unescapeJson(proxyNodeInfo.getOther()),new TypeToken<Map<String,Object>>(){}.getType());

相关文章:

复杂json解析(其中有一个key的value是json格式的字符串)

app上报的参数如下: {"clientId": "8517895440514039afcf6d3e5d7832ae","dua": "SNDOCKCJPH90_GA&VN900042418&BN0&VCXiaomi&MOM2012K11AC&RL1080_2239&CHIDunknown_unknown&LCID&RV&OSAndroid13&…...

线程池的一些问题

核心线程数1.最大线程5.队列5.存活时间10s 1.场景一 如果核心线程数.被一直占用得不到释放.新进来1个任务.会怎么样?答: 会在队列中中死等. 只要进来的任务.不超过队列的长度,就会一直挡在队列中死等 package com.lin;import java.util.concurrent.Executors; import java.u…...

企业或者个体户为什么会经营异常?

在复杂多变的市场经济环境中&#xff0c;无论是企业还是个体工商户&#xff0c;都可能遭遇经营异常的情况。及时识别这些预警信号并采取有效措施&#xff0c;对于避免潜在风险、保持健康发展至关重要。本文将深入探讨企业与个体户常见的经营异常类型、识别方法以及应对策略&…...

ROS从入门到精通4-3:制作Docker镜像文件Dockerfile

目录 0 专栏介绍1 为什么需要Dockerfile&#xff1f;2 Dockerfile书写原则3 Dockerfile常用指令3.1 FROM3.2 MAINTAINER3.3 RUN3.4 ADD3.5 COPY3.6 CMD3.7 ENV3.8 EXPOSE3.9 WORKDIR3.10 ARG 4 Dockerfile构建ROS工程实例 0 专栏介绍 本专栏旨在通过对ROS的系统学习&#xff0…...

【CV】计算机视觉是什么?

计算机视觉是一门研究如何使机器“看”的学科&#xff0c;旨在实现从图像或视频中获取信息的技术和方法。它涵盖了图像处理、模式识别、机器学习等多个领域&#xff0c;是人工智能领域的重要分支之一。以下是计算机视觉的一般概要介绍&#xff1a; 概要介绍&#xff1a; 图像…...

如何在Vue中实现鼠标悬浮展示与隐藏弹窗的功能

如果你需要鼠标在元素和弹窗上时保持弹窗显示&#xff0c;而鼠标离开这两者时隐藏弹窗&#xff0c;你可以使用一个稍微复杂的逻辑来处理鼠标的进入和离开事件。 这通常涉及到延时关闭弹窗&#xff0c;以便给用户足够的时间从元素移动到弹窗上&#xff0c;而不触发弹窗关闭。以…...

03 Linux编程-进程

1、进程的相关概念 1.1 程序与进程 程序是静态的概念&#xff0c;进程是程序的一次运行活动。 1.2 查看系统中有哪些进程 ps #只显示一小部分进程 ps -aux #会打印当前所有进程 ps -aux|grep init #使用grep筛选出只含有init的进程top #运行显示的进程有点类似windows…...

Hbuild-X运行ios基座app

一、说明 ios真机第一次运行的时候需要下载插件&#xff0c;这个都是自动监测&#xff0c;自动下载的&#xff0c;不用多说。ios真机运行是需要签名的&#xff0c;不然就会报以下错误。如何制作免费的签名证书呢&#xff0c;需要借助爱思助手来完成。 二、安装爱思助手 &…...

Node.js基础:从入门到实战

初识 Node.js 与内置模块 &#xff08;初识&#xff09; 1、知道什么是node.js 2、知道node.js可以做什么 3、node.js 中js的组成部分 &#xff08;内置模块&#xff09; 4、用 fs 模块读写操作文件 5、使用 path 模块处理路径 6、使用http 模块写一个基本的web服务器 初识 N…...

考研408笔记总结~

目录 一.数据结构 二.计算机组成原理 三.操作系统 四.计算机网络 私以为边看视频&#xff0c;边做笔记会更专注些&#xff0c;大家需要自取。欢迎大家和我一起探讨考研的问题&#xff0c;包括不仅限于专业课&#xff0c;数学&#xff0c;英语等等......&#xff0c;想说什么…...

使用在线工具等方式下载推特视频

使用在线工具等方式下载推特视频 使用在线工具 Visit a Twitter video downloader website: Websites like twdown.net, twittervideodownloader.com, and savevideo.me offer services to download Twitter videos.Paste the Twitter video URL into the designated input bo…...

性能优化:几方面考虑

我们可以继续再考虑下关于性能优化&#xff0c;我们还能从哪些方面着手呢&#xff1f; 1. 代码层面&#xff1a; 使用更高效的数据结构和算法。使用缓存避免多次数据库交互减少不必要的计算和内存分配。利用并行和异步编程提高性能。使用性能分析工具定位和优化瓶颈。 2. We…...

学习大数据:论学习Spark的重要性

随着科技的不断发展&#xff0c;大数据已经成为了当今社会的热门话题。大数据技术的出现&#xff0c;为我们提供了处理海量数据的新方法&#xff0c;使得我们能够从这些数据中挖掘出有价值的信息。在众多的大数据处理框架中&#xff0c;Apache Spark无疑是最为出色的一种。本文…...

学习java第七十一天

DI&#xff1a;依赖注入 依赖注入是spring容器中创建对象时给其设置依赖对象的方式&#xff0c;比如给spring一个清单&#xff0c;清单中列出了需要创建B对象以及其他的一些对象&#xff08;可能包含了B类型中需要依赖对象&#xff09;&#xff0c;此时spring在创建B对象的时候…...

Altium Designer PCB快捷键设置

6&#xff09;PCB修改快捷键&#xff0c;并自定义工具栏 添加boardlayerset系统命令。 修改系统脚本&#xff0c; 在D:\Program Files\Altium\AD18\System下&#xff0c;找到advpcb.rcs文件&#xff0c;打开。 Tree MNPCB_LayerSets CaptionManage Layer Se&ts Popup Emp…...

玩转Matlab-Simscape(初级)- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(案例实战)

** 玩转Matlab-Simscape&#xff08;初级&#xff09;- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&#xff08;案例实战&#xff09; ** 目录 玩转Matlab-Simscape&#xff08;初级&#xff09;- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&…...

vue嵌套路由

一、嵌套 children配置 1.父类路由 mymusic 2.子类路由 musicson 1.创建MusicSon组件 <template><div><p>从前和后来</p><p>唯一</p><p>运气来的似有若无</p></div> </template><script>export defaul…...

视频降噪算法 hqdn3d 原理分析

视频降噪 视频降噪是一种处理技术&#xff0c;旨在减少视频中的噪声&#xff0c;提高画面质量。噪声可能来自多种源头&#xff0c;包括摄像机的传感器、压缩算法、传输过程中的干扰等。降噪处理对于视频监控、视频会议、电影后期制作以及任何需要高画质输出的应用场景都非常重…...

Ansys Mechanical|屈曲分析技术

屈曲分析的基本概念 当受拉杆件的应力达到屈服极限或强度极限时&#xff0c;将引起塑性变形或断裂。这些是由于强度不足所引起的失效。 在工程中&#xff0c;我们会注意到当细长杆件受压时&#xff0c;表现出与强度失效完全不同的性质。当杆件受压超过某一临界值时&#xff0…...

【大模型微调】一文掌握7种大模型微调的方法

本篇文章深入分析了大型模型微调的基本理念和多样化技术&#xff0c;细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景&#xff0c;使得读者可以依据特定的应用要求和计算资源限…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...