ABAP JSON处理应用

news2024/12/27 16:35:36

1. json 转换成内表

通过上传URL获取json数据并转换为内表

json to itab关键字

  METHOD get_itab_for_json.
    DATA : lr_client       TYPE REF TO if_http_client,
           lv_url          TYPE string,
           lv_content_type TYPE string VALUE 'application/x-www-form-urlencoded',
           ev_xstring      TYPE xstring,
           ex_string       TYPE string.

    IF iv_guid IS INITIAL.
      ev_msg = 'GUID不能为空!'.
      RETURN.
    ENDIF.

    "get url
    lv_url = zcl_wd_json=>get_system_url(
             iv_system = 'DMS'
             iv_action = 'GET_FILES' ).

    IF lv_url IS INITIAL.
      ev_msg = '未获取到URL!'.
      RETURN.
    ENDIF.

    "get APIKEY
    DATA(lv_apikey) = zcl_wd_json=>get_system_url(
             iv_system = 'DMS'
             iv_action = 'APIKEY' ).

    lv_url = lv_url && iv_guid && |&{ lv_apikey }|.

    TRY .

        "创建http对象
        cl_http_client=>create_by_url(
          EXPORTING
          url                = lv_url
          IMPORTING
          client             = lr_client
           EXCEPTIONS
           argument_not_found = 1
           plugin_not_active  = 2
           internal_error     = 3
           OTHERS             = 4 ).

* set protocol version
        CALL METHOD lr_client->request->set_header_field
          EXPORTING
            name  = '~server_protocol'
            value = 'HTTP/1.1'.
* 提交方式
        CALL METHOD lr_client->request->set_header_field
          EXPORTING
            name  = '~request_method'
            value = 'GET'.
* 传参方式: application/json,application/x-www-form-urlencoded
        CALL METHOD lr_client->request->set_header_field
          EXPORTING
            name  = 'Content-Type'
            value = lv_content_type.

* 填充参数
*  CLEAR lv_len.
*  lv_len = strlen( iv_json ).
*  IF lv_len GT 0.
*    CALL METHOD lr_client->request->set_cdata   " Removed APPEND_CDATA
*      EXPORTING
*        data   = iv_json
*        offset = 0
*        length = lv_len.
*  ENDIF.

* 发送
        CALL METHOD lr_client->send
          EXPORTING
            timeout                    = 200
          EXCEPTIONS
            http_communication_failure = 1
            http_invalid_state         = 2
            http_processing_failed     = 3
            OTHERS                     = 4.

        IF sy-subrc NE 0.
          lr_client->get_last_error(
            IMPORTING
              message = ev_msg
          ).
          RETURN.
        ENDIF.

* 获取返回
        CALL METHOD lr_client->receive
          EXCEPTIONS
            http_communication_failure = 1
            http_invalid_state         = 2
            http_processing_failed     = 3.
        IF sy-subrc NE 0.
          lr_client->get_last_error(
            IMPORTING
              message = ev_msg
          ).
          RETURN.
        ENDIF.

* 返回
*  CLEAR: lv_xjson .
        ev_xstring = lr_client->response->get_data( ).

* XSTRING to STRING
        CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
          EXPORTING
            im_xstring  = ev_xstring
            im_encoding = 'UTF-8'
          IMPORTING
            ex_string   = ex_string.

*    "json to itab
        CALL TRANSFORMATION id
                             SOURCE XML ex_string
                             RESULT status = es_json-status
                                    msg = es_json-msg
                                    rows = es_json-rows.

      CATCH cx_abapcg_exception  .
        ev_msg = '异常'.
    ENDTRY.

* 关闭链接ie
    lr_client->close( ).
  ENDMETHOD.

ZTABURL01 外围系统URL配置表

  METHOD get_system_url.
    SELECT  SINGLE url INTO ev_url FROM ztaburl01
      WHERE syst = iv_system
        AND action = iv_action.
  ENDMETHOD.

2.JSON序列化

   class-methods SERIALIZE
    importing
      !DATA type DATA
      !COMPRESS type BOOL default C_BOOL-FALSE
      !NAME type STRING optional
      !PRETTY_NAME type PRETTY_NAME_MODE default PRETTY_MODE-NONE
      !TYPE_DESCR type ref to CL_ABAP_TYPEDESCR optional
      !ASSOC_ARRAYS type BOOL default C_BOOL-FALSE
      !TS_AS_ISO8601 type BOOL default C_BOOL-FALSE
      !EXPAND_INCLUDES type BOOL default C_BOOL-TRUE
      !ASSOC_ARRAYS_OPT type BOOL default C_BOOL-FALSE
      !NUMC_AS_STRING type BOOL default C_BOOL-FALSE
      !NAME_MAPPINGS type NAME_MAPPINGS optional
    returning
      value(R_JSON) type JSON .

METHOD serialize.

*    " **********************************************************************
*    "! Usage examples and documentation can be found on SCN:
*    " http://wiki.scn.sap.com/wiki/display/Snippets/One+more+ABAP+to+JSON+Serializer+and+Deserializer
*    " **********************************************************************  "

    DATA: lo_json  TYPE REF TO zcl_json.

    CREATE OBJECT lo_json
      EXPORTING
        compress         = compress
        pretty_name      = pretty_name
        name_mappings    = name_mappings
        assoc_arrays     = assoc_arrays
        assoc_arrays_opt = assoc_arrays_opt
        expand_includes  = expand_includes
        numc_as_string   = numc_as_string
        ts_as_iso8601    = ts_as_iso8601.

    r_json = lo_json->serialize_int( name = name data = data type_descr = type_descr ).

  ENDMETHOD.       

3. 应用

3.1 SAP 获取销售系统的交房日期

FUNCTION ZFIFM_PI1225.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(IT_PI1225_01) TYPE  ZTPI1225_01
*"  TABLES
*"      ET_ZTPI1225 TYPE  ZTPI1225
*"----------------------------------------------------------------------
  DATA LS_SEND              TYPE ZVKDT_ECC_BASE_FORM.
  DATA LS_RECEIVE           TYPE ZVKDT_PI1225_FWJDELVDATE_QUER4.

  DATA LS_BIZPARAM          TYPE ZPI1225_SBIZPARM.
  DATA LT_ZTTANDCRITERIA    TYPE ZTPI1225_ANDCRITERIA.
  DATA LT_ZTRETURNPUBPROPS  TYPE ZTPI1225_RETURNPUBPROPS.
  DATA LT_MAPPING           TYPE ZCL_JSON=>NAME_MAPPINGS.

  DATA LR_EXCEPTION         TYPE REF TO CX_AI_SYSTEM_FAULT.
  DATA LCL_FAULT            TYPE REF TO CX_AI_SYSTEM_FAULT.
  DATA LV_ERROR_TXT         TYPE STRING.

  DATA LS_ZTPI1225          TYPE LINE OF ZTPI1225.

  "根据房源内码取数据
  LT_ZTTANDCRITERIA   = VALUE #( ( FIELDCODE = 'innerId' VALUETYPE = 'String' VALUES = IT_PI1225_01 ) ).

  "返回四个日期字段
  APPEND 'actualPayDate'      TO LT_ZTRETURNPUBPROPS.
  APPEND 'noticeDate'         TO LT_ZTRETURNPUBPROPS.
  APPEND 'focusPayDateStart'  TO LT_ZTRETURNPUBPROPS.
  APPEND 'focusPayDateEnd'    TO LT_ZTRETURNPUBPROPS.

  LS_BIZPARAM-QUERYCRITERIA-CRITERIA-ANDCRITERIA = LT_ZTTANDCRITERIA.
  LS_BIZPARAM-PAGENO = 1.
  LS_BIZPARAM-RETURNAPPPROPS = LT_ZTRETURNPUBPROPS.
  LS_BIZPARAM-PAGESIZE = 500.
  LS_BIZPARAM-CATEGORYID = '10003'.

  "和中台接口字段对应关系
  LT_MAPPING = VALUE #( ( ABAP = `EXTATTRRETURNTYPE`  JSON = `extAttrReturnType`  )
                        ( ABAP = `QUERYCRITERIA`      JSON = `queryCriteria`      )
                        ( ABAP = `CRITERIA`           JSON = `criteria`           )
                        ( ABAP = `ANDCRITERIA`        JSON = `andCriteria`        )

                        ( ABAP = `FIELDCODE`          JSON = `fieldCode`          )
                        ( ABAP = `VALUETYPE`          JSON = `valueType`          )
                        ( ABAP = `VALUES`             JSON = `values`             )
                        ( ABAP = `RETURNAPPPROPS`     JSON = `returnAppProps`     )

                        ( ABAP = `PAGENO`             JSON = `pageNo`             )
                        ( ABAP = `PAGESIZE`           JSON = `pageSize`           )
                        ( ABAP = `CATEGORYID`         JSON = `categoryId`         ) ).

  "BIZ_PARAM 参数业务json
  LS_SEND-I_REQUEST-MESSAGE-DATA-R-BIZ_PARAM = ZCL_JSON=>SERIALIZE( DATA = LS_BIZPARAM NAME_MAPPINGS = LT_MAPPING ).

* MD5加处理
  CALL FUNCTION 'ZFM_FI_ZT_SECRET_MD5'
    CHANGING
      IS_SEND = LS_SEND.

  TRY.
      CALL FUNCTION 'ZABI_0001'
        EXPORTING
          IV_ITFID          = 'PI1225_FWJDELVDATE_QUERY'
          IV_IMPORT         = LS_SEND
        IMPORTING
          EV_EXPORT         = LS_RECEIVE
        EXCEPTIONS
          CALL_PROXY_FAILED = 1
          OTHERS            = 2.
    CATCH CX_AI_SYSTEM_FAULT INTO LCL_FAULT.
      LV_ERROR_TXT = LCL_FAULT->GET_TEXT( ).
      SY-SUBRC = 4.
  ENDTRY.

  DATA LO_XML     TYPE REF TO CL_XML_DOCUMENT.
  DATA LV_RC      TYPE SY-SUBRC.

  " 处理返回数据
  READ TABLE LS_RECEIVE-E_RESPONSE-RETURNSTATUS-DATA INTO DATA(LS_DATA) INDEX 1.
  IF SY-SUBRC = 0.
    LOOP AT LS_DATA-LIST INTO DATA(LS_LIST) WHERE INNER_ID IS NOT INITIAL.
      IF LS_LIST-PROP_MAP IS NOT INITIAL.
        REPLACE 'fwj_focusPayDateStart' WITH 'FWJ_FOCUSPAYDATESTART' INTO LS_LIST-PROP_MAP.
        REPLACE '/fwj_focusPayDateStart' WITH '/FWJ_FOCUSPAYDATESTART' INTO LS_LIST-PROP_MAP.
        REPLACE 'fwj_focusPayDateEnd' WITH 'FWJ_FOCUSPAYDATEEND' INTO LS_LIST-PROP_MAP.
        REPLACE '/fwj_focusPayDateEnd' WITH '/FWJ_FOCUSPAYDATEEND' INTO LS_LIST-PROP_MAP.
        REPLACE 'fwj_actualPayDate' WITH 'FWJ_ACTUALPAYDATE' INTO LS_LIST-PROP_MAP.
        REPLACE '/fwj_actualPayDate' WITH '/FWJ_ACTUALPAYDATE' INTO LS_LIST-PROP_MAP.
        REPLACE 'fwj_noticeDate' WITH 'FWJ_NOTICEDATE' INTO LS_LIST-PROP_MAP.
        REPLACE '/fwj_noticeDate' WITH '/FWJ_NOTICEDATE' INTO LS_LIST-PROP_MAP.

        CREATE OBJECT LO_XML.
        CALL METHOD LO_XML->PARSE_STRING
          EXPORTING
            STREAM  = LS_LIST-PROP_MAP
          RECEIVING
            RETCODE = LV_RC.

        CALL METHOD LO_XML->GET_DATA
          CHANGING
            DATAOBJECT = LS_ZTPI1225.
      ENDIF.

      FIND 'FWJ_FOCUSPAYDATESTART' IN LS_LIST-PROP_MAP.
      IF SY-SUBRC <> 0.
*        LS_ZTPI1225-FWJ_FOCUSPAYDATESTART = '99991231'.
        LS_ZTPI1225-FWJ_FOCUSPAYDATESTART = ''.
      ELSE.
        LS_ZTPI1225-FWJ_FOCUSPAYDATESTART = LS_ZTPI1225-FWJ_FOCUSPAYDATESTART+0(4) && LS_ZTPI1225-FWJ_FOCUSPAYDATESTART+5(2) && LS_ZTPI1225-FWJ_FOCUSPAYDATESTART+8(2).
      ENDIF.

      FIND 'FWJ_FOCUSPAYDATEEND' IN LS_LIST-PROP_MAP.
      IF SY-SUBRC <> 0.
*        LS_ZTPI1225-FWJ_FOCUSPAYDATEEND = '99991231'.
        LS_ZTPI1225-FWJ_FOCUSPAYDATEEND = ''.
      ELSE.
        LS_ZTPI1225-FWJ_FOCUSPAYDATEEND = LS_ZTPI1225-FWJ_FOCUSPAYDATEEND+0(4) && LS_ZTPI1225-FWJ_FOCUSPAYDATEEND+5(2) && LS_ZTPI1225-FWJ_FOCUSPAYDATEEND+8(2).
      ENDIF.

      FIND 'FWJ_ACTUALPAYDATE' IN LS_LIST-PROP_MAP.
      IF SY-SUBRC <> 0.
*        LS_ZTPI1225-FWJ_ACTUALPAYDATE = '99991231'.
        LS_ZTPI1225-FWJ_ACTUALPAYDATE = ''.
      ELSE.
        LS_ZTPI1225-FWJ_ACTUALPAYDATE = LS_ZTPI1225-FWJ_ACTUALPAYDATE+0(4) && LS_ZTPI1225-FWJ_ACTUALPAYDATE+5(2) && LS_ZTPI1225-FWJ_ACTUALPAYDATE+8(2).
      ENDIF.

      FIND 'FWJ_NOTICEDATE' IN LS_LIST-PROP_MAP.
      IF SY-SUBRC <> 0.
*        LS_ZTPI1225-FWJ_NOTICEDATE = '99991231'.
        LS_ZTPI1225-FWJ_NOTICEDATE = ''.
      ELSE.
        LS_ZTPI1225-FWJ_NOTICEDATE = LS_ZTPI1225-FWJ_NOTICEDATE+0(4) && LS_ZTPI1225-FWJ_NOTICEDATE+5(2) && LS_ZTPI1225-FWJ_NOTICEDATE+8(2).
      ENDIF.

      LS_ZTPI1225-INNER_ID = LS_LIST-INNER_ID.

      APPEND LS_ZTPI1225 TO ET_ZTPI1225.
    ENDLOOP.
  ENDIF.

* 如果房源没有到日期,补个空值
  SORT ET_ZTPI1225 BY INNER_ID.
  CLEAR LS_ZTPI1225.
  LOOP AT IT_PI1225_01 INTO DATA(LV_INNER_ID).
    READ TABLE ET_ZTPI1225 TRANSPORTING NO FIELDS WITH KEY INNER_ID = LV_INNER_ID BINARY SEARCH.
    IF SY-SUBRC <> 0.
      LS_ZTPI1225-INNER_ID = LV_INNER_ID.
      APPEND LS_ZTPI1225 TO ET_ZTPI1225.
    ENDIF.
  ENDLOOP.
  SORT ET_ZTPI1225 BY INNER_ID.

ENDFUNCTION.

接口中台对接MD5加密

FUNCTION ZFM_FI_ZT_SECRET_MD5.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(IV_KEY) TYPE  STRING DEFAULT 
*"  EXPORTING
*"     REFERENCE(EV_CIPHERTEXT) TYPE  STRING
*"  CHANGING
*"     REFERENCE(IS_SEND) TYPE  ZVKDT_ECC_BASE_FORM
*"----------------------------------------------------------------------

  DATA LV_PLAINTEXT      TYPE STRING.
  DATA LV_DATUM          TYPE CHAR10.
  DATA LV_UZEIT          TYPE CHAR10.
  DATA LS_ZTAB0041       TYPE ZTAB0041.

  LV_DATUM = SY-DATUM+0(4) && '-' && SY-DATUM+4(2) && '-' && SY-DATUM+6(2).
  WRITE SY-UZEIT TO LV_UZEIT.

  " 通用参数设置
  SELECT SINGLE * FROM ZTAB0041 INTO LS_ZTAB0041.

  IS_SEND-I_REQUEST-MESSAGE-DATA-R-V           = LS_ZTAB0041-VERSION.
  IS_SEND-I_REQUEST-MESSAGE-DATA-R-APP_ID      = LS_ZTAB0041-APPID.
  IS_SEND-I_REQUEST-MESSAGE-DATA-R-DOMAIN      = LS_ZTAB0041-ZDOMAIN.
  IS_SEND-I_REQUEST-MESSAGE-DATA-R-USER_DOMAIN = LS_ZTAB0041-USER_DOMAIN.
  IS_SEND-I_REQUEST-MESSAGE-DATA-R-SIGN_METHOD = 'md5'.
  IS_SEND-I_REQUEST-MESSAGE-DATA-R-REQ_ID      = LS_ZTAB0041-REQ_ID.
  CONCATENATE LV_DATUM LV_UZEIT INTO IS_SEND-I_REQUEST-MESSAGE-DATA-R-TIMESTAMP SEPARATED BY SPACE.

  " 输入参数处理
  LV_PLAINTEXT = LS_ZTAB0041-APPSECRET
                && 'appId'      && IS_SEND-I_REQUEST-MESSAGE-DATA-R-APP_ID
                && 'bizParam'   && IS_SEND-I_REQUEST-MESSAGE-DATA-R-BIZ_PARAM
                && 'domain'     && IS_SEND-I_REQUEST-MESSAGE-DATA-R-DOMAIN
                && 'reqId'      && IS_SEND-I_REQUEST-MESSAGE-DATA-R-REQ_ID
                && 'signMethod' && IS_SEND-I_REQUEST-MESSAGE-DATA-R-SIGN_METHOD
                && 'timestamp'  && IS_SEND-I_REQUEST-MESSAGE-DATA-R-TIMESTAMP
                && 'userDomain' && IS_SEND-I_REQUEST-MESSAGE-DATA-R-USER_DOMAIN
                && 'v'          && IS_SEND-I_REQUEST-MESSAGE-DATA-R-V
                && LS_ZTAB0041-APPSECRET.

  " MD5 加密处理
  CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
    EXPORTING
      ALG        = 'MD5'
      DATA       = LV_PLAINTEXT
    IMPORTING
      HASHSTRING = IS_SEND-I_REQUEST-MESSAGE-DATA-R-SIGN.
ENDFUNCTION.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2120135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【python报错】ModuleNotFoundError: No module named ‘utils‘

问题 想要用python语言将A文件夹的a.py脚本引用utils文件夹b.py脚本&#xff0c;直接引用&#xff1a;from utils import XXX 导致在vscode编译器报错&#xff1a;ModuleNotFoundError: No module named utils 这里文件夹A和utils是同级目录【其他情况&#xff0c;修改后面代码…

背钻设计时要优先保证哪一项,STUB长度真的是越短越好吗

高速先生成员--王辉东 人道是&#xff1a; 八月十八潮&#xff0c;壮观天下无。 鲲鹏水击三千里&#xff0c;组练长驱十万夫。 红旗青盖互明末&#xff0c;黑沙白浪相吞屠。 人生会合古难必&#xff0c;此情此景那两得。 小蝶托着腮望着窗外&#xff0c;思绪飞到千里之外…

【鸿蒙开发从0到1 day08】

鸿蒙开发基础 一.联合类型二.枚举类型三.组件和样式1. ArkUI基本语法 四.尺寸五.字体1.字体颜色2.字体样式3.LineHeight() 设置行高 上间距文字下间距4.下划线:5.对齐方式(1)水平对齐方式(2)垂直对齐方式 6.文本缩进和文本省略号设置 六.图片1.图片的等比例缩放2.占位符3.图片填…

2024腾讯互联网AI应用专场

2024腾讯互联网AI应用专场 灵魂提问&#xff1a; 1、AI应用场景&#xff1a; 智能客服智能数据分析BI 通过AI生成的内容的点击率是人工生产的103%。 2、AI时代已经来临&#xff0c; 依然是这些互联网巨头领导。 现在股价低迷&#xff0c;是不是投资的好机会。 3、agent …

矩阵怪 - 2024全新矩阵产品,一键分发抖音,快手,视频号,B站,小红书!

1. 本方案面向谁&#xff0c;解决了什么问题 本方案主要面向C端客户&#xff0c;特别是那些在各大短视频平台&#xff08;如小红书、抖音、视频号、快手、B站等&#xff09;上进行内容创作和分发的个人用户、自由职业者、小型团队或企业。这些用户通常面临着在多个平台上同时发…

Python爬虫如何通过滑块验证

一&#xff1a;定位元素的坐标 当 Selenium 定位到元素后&#xff0c;如果想获取元素在页面中的具体坐标位置&#xff0c;可以通过 element.location 的方式来得到元素的起始坐标字典&#xff08;元素的左上顶点&#xff09;。然后再通过 element.size 的方式来获取该元素的宽…

Python列表浅拷贝的陷阱与破解之道

引言 在Python编程世界中&#xff0c;列表的拷贝操作看似简单&#xff0c;却常常隐藏着一些令人意想不到的陷阱&#xff0c;尤其是当涉及到浅拷贝时。今天&#xff0c;我们将深入探讨Python列表浅拷贝现象及产生原因&#xff0c;并提供有效的解决方案&#xff0c;帮助你写出更…

Mysql Innodb存储引擎原理—链接如下

Mysql Innodb存储引擎| ProcessOn免费在线作图,在线流程图,在线思维导图 ProcessOn是一个在线协作绘图平台&#xff0c;为用户提供强大、易用的作图工具&#xff01;支持在线创作流程图、思维导图、组织结构图、网络拓扑图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。同…

Excel--复制粘贴时怎么跳过隐藏的行和列

方法一 比如如何跳过下面的行复制其他 首先将黄色的背景行按CTRL0隐藏起来 打开定位条件 选择可见单元格&#xff0c;点击确定 然后复制表格粘贴即可 方法二 首先将不需要的行和列隐藏起来&#xff0c;按Alt&#xff1b;锁定可见单元格。 复制粘贴即可&#xff0c;这样粘贴的…

解锁编程潜力,从掌握GitHub开始

目录&#xff1a; 一、搜索开源项目 1、什么是Git 2、Github常用词含义 3、一个完整的项目界面 4、使用Github搜索项目 1&#xff09;in关键词 2&#xff09;star或fork数量去查找 3&#xff09;awesome加强搜索 二、访问速度慢的解决 1、使用网易UU加速器 2、使用…

redisservice jsonobect 转list

redis里存的是json&#xff0c;但是json的格式是list 怎么取出来呢 JSONArray cacheObject (JSONArray) redisService.getCacheObject("sys_dict:dispute_data_source_hn");Class<SysDictData> sysDictDataClass SysDictData.class;List<SysDictData>…

日历时钟怎么设置?桌面日历时钟设置方法

大家好&#xff0c;今天小编给大家介绍一下&#xff0c;日历时钟怎么设置&#xff1f;桌面日历时钟设置方法 第一&#xff1a;先安装《芝麻时钟》这个桌面时钟软件&#xff0c;这个桌面时钟软件非常的强大&#xff0c;可以在桌面显示各种各样的时钟&#xff0c;各种时钟风格大…

ubuntu20.04搭建vue开发环境

1、当前系统版本 cat /etc/issue 2、nodejs安装 sudo apt install nodejs 查看nodejs版本 3、npm安装 sudo apt install npm 查看npm版本 npm -v 4、Vue安装 sudo npm install -g vue-cli 查看版本和是否安装成功 5、创建vue项目 sudo vue init webpack vuedemo 6、运行…

C++之数据类型

//宏常量define&#xff08;注意书写格式&#xff09; #define a 7 //const修饰变量 const int b 365; 命名规则 数据类型之整型&#xff1a; sizeof&#xff08;&#xff09;&#xff1a;求数据类型所占空间大小&#xff0c;字节数 数据类型之实型&#xff08;浮点数&#…

如何使用命令行快速下载Google Drive/OneDrive大文件

OneDrive OneDrive使用wget下载会出现403 forbidden&#xff0c;可通过下面方法下载。 浏览器右键进入检查界面&#xff0c;选择netowork&#xff0c;搜索download.aspx&#xff0c;然后在待下载文件处点击下载&#xff0c;即可出现下载链接&#xff0c;复制为cURL即可下载。…

STM32 之 SDRAM 详解

目录 前言 一、SDRAM 简介 二、SDRAM的组成原理 2.1存储单元阵列 2.1.1地址译码 2.1.2存储电容 2.2控制逻辑 2.2.1时钟同步 2.2.2命令解码 2.2.3模式寄存器 2.3数据输入 / 输出缓冲 2.3.1数据总线 2.3.2数据锁存 2.4刷新电路 2.4.1自动刷新 2.4.2自刷新 三、S…

Parsec问题解决方案

Parsec目前就是被墙了&#xff0c;有解决方案但治标不治本&#xff0c;如果想稳定串流建议是更换稳定的串流软件&#xff0c;以下是一些解决方案 方案一&#xff1a;在%appdata%/Parsec/config.txt中&#xff0c;添加代理 app_proxy_address 127.0.0.1 app_proxy_scheme http…

每日OJ_牛客_乒乓球筐(字符串模拟)

目录 牛客_乒乓球筐&#xff08;简单模拟&#xff09; 解析代码 牛客_乒乓球筐&#xff08;简单模拟&#xff09; 乒乓球筐__牛客网 nowcoder有两盒&#xff08;A、B&#xff09;乒乓球&#xff0c;有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类&a…

Win10安装.net FrameWork3.5失败解决方法

win10安装.net FrameWork3.5失败解决方法 已经好久没有来投稿了,实在最近业务缠身,忙的焦头烂额(呵~多么伟大的牛马) 但最近开发使用windows11实在是拉胯的不行,升级完就后悔,所以就一怒之下,重装了win10 可是,好家伙,我重装完遇到一个问题,就是在使用.Net Framework3.5,按照Mi…

GB28181规范中broadcast和talk模式实际场景时间差别在哪里?

好多开发者对GB28181规范里面&#xff0c;broadcast和talk模式区分不清&#xff0c;今天借此机会&#xff0c;针对GB28181标准中的Broadcast&#xff08;广播&#xff09;和Talk&#xff08;对讲&#xff09;是两种不同的通信模式&#xff0c;它们在视频监控系统中扮演着不同的…