精华内容
下载资源
问答
  • 数据转换成json格式字符

    万次阅读 2017-09-20 16:43:07
    最近写程序遇到一个问题,把一些数据转换成json格式字符串保存起来,这些数据有普通的键值对,还有列表类型的,下面写了一个小例子,列表数据以复选框CheckBox形式来展示,另外模拟加了一个普通数据的字段,当点击...

    最近写程序遇到一个问题,把一些数据转换成json格式的字符串保存起来,这些数据有普通的键值对,还有列表类型的,下面写了一个小例子,列表数据以复选框CheckBox形式来展示,另外模拟加了一个普通数据的字段,当点击提交按钮时将EditText和选中的复选框的内容拼接成一个json字符串,效果如下图所示:
    这里写图片描述
    实现源码:
    主要功能类MainActivity

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.TextView;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        private CheckBox cb1, cb2, cb3, cb4, cb5;
        private List<CheckBox> checkBoxList = new ArrayList<CheckBox>();
        private Button btn_submit;
        private TextView tv_jsonString;
        private EditText et_workMode;
    
        private JSONObject object = null;  //JSONObject对象,处理一个一个的对象
        private JSONObject object2 = null;
        private JSONArray jsonArray = null;//JSONObject对象,处理一个一个集合或者数组
        private String jsonString = "";  //保存带集合的json字符串
    
        private List<CheckBoxInfo> checkBoxInfoList;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initView();
        }
    
        private void initView() {
            cb1 = (CheckBox) findViewById(R.id.cb1);
            cb2 = (CheckBox) findViewById(R.id.cb2);
            cb3 = (CheckBox) findViewById(R.id.cb3);
            cb4 = (CheckBox) findViewById(R.id.cb4);
            cb5 = (CheckBox) findViewById(R.id.cb5);
    
            // 将所有的checkbox放到一个集合中
            checkBoxList.add(cb1);
            checkBoxList.add(cb2);
            checkBoxList.add(cb3);
            checkBoxList.add(cb4);
            checkBoxList.add(cb5);
    
            et_workMode = (EditText) findViewById(R.id.et_workMode);
            btn_submit = (Button) findViewById(R.id.btn_submit);
            tv_jsonString = (TextView) findViewById(R.id.tv_jsonString);
            btn_submit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    checkBoxInfoList = new ArrayList<CheckBoxInfo>();
                    //遍历集合中的checkBox,判断是否选择,获取选中的文本
                    for (CheckBox checkbox : checkBoxList) {
                        if (checkbox.isChecked()) {
                            CheckBoxInfo checkBoxInfo = new CheckBoxInfo();
                            checkBoxInfo.setLike(checkbox.getText().toString());
                            checkBoxInfoList.add(checkBoxInfo);
                        }
                    }
                    changeArrayDateToJson();
                }
            });
        }
    
    
        private void changeArrayDateToJson() {  //把一个集合转换成json格式的字符串
            jsonArray = new JSONArray();
            object = new JSONObject();
            for (int i = 0; i < checkBoxInfoList.size(); i++) {  //遍历上面初始化的集合数据,把数据加入JSONObject里面
                object2 = new JSONObject();//一个user对象,使用一个JSONObject对象来装
                try {
                    object2.put("like", checkBoxInfoList.get(i).getLike());  //从集合取出数据,放入JSONObject里面 JSONObject对象和map差不多用法,以键和值形式存储数据
                    jsonArray.put(object2); //把JSONObject对象装入jsonArray数组里面
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
    
            try {
                object.put("likeList", jsonArray); //再把JSONArray数据加入JSONObject对象里面(数组也是对象)
                object.put("workMode", et_workMode.getText().toString()); //这里还可以加入数据,这样json型字符串,就既有集合,又有普通数据
            } catch (JSONException e) {
                e.printStackTrace();
            }
            jsonString = object.toString(); //把JSONObject转换成json格式的字符串
            tv_j`
    onString.setText(jsonString);
            Log.e("tag", "转换成json字符串: " + jsonString);
        }
    
    }
    

    XML布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/tv_workMode"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="工作模式"/>
            <EditText
                android:id="@+id/et_workMode"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/tv_workMode"
                android:layout_marginLeft="10dp"
                android:hint="请填写工作模式"
                android:textSize="14sp"/>
        </RelativeLayout>
    
        <CheckBox
            android:id="@+id/cb1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="体育"/>
    
        <CheckBox
            android:id="@+id/cb2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="音乐"/>
    
        <CheckBox
            android:id="@+id/cb3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="美术"/>
    
        <CheckBox
            android:id="@+id/cb4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="英语"/>
        <CheckBox
            android:id="@+id/cb5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="语文"/>
    
        <Button
            android:id="@+id/btn_submit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"/>
    
        <TextView
            android:id="@+id/tv_jsonString"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="jsonString:"/>
    
    </LinearLayout>
    

    两个实体类
    SettingDataInfo

    package com.junto.splicingjson;
    import java.io.Serializable;
    import java.util.List;
    
    /**
     * Created by WangJinyong on 2017/9/20.
     */
    
    public class SettingDataInfo implements Serializable {
    
        private String workMode;
        private List<CheckBoxInfo> checkBoxInfoList;
    
        public String getWorkMode() {
            return workMode;
        }
    
        public void setWorkMode(String workMode) {
            this.workMode = workMode;
        }
    
        public List<CheckBoxInfo> getCheckBoxInfoList() {
            return checkBoxInfoList;
        }
    
        public void setCheckBoxInfoList(List<CheckBoxInfo> checkBoxInfoList) {
            this.checkBoxInfoList = checkBoxInfoList;
        }
    }
    

    CheckBoxInfo 存放CheckBox列表

    package com.junto.splicingjson;
    
    import java.io.Serializable;
    
    /**
     * Created by WangJinyong on 2017/9/20.
     */
    
    public class CheckBoxInfo implements Serializable {
    
        private String like;
    
        public String getLike() {
            return like;
        }
    
        public void setLike(String like) {
            this.like = like;
        }
    }
    

    以上内容即可实现把数据转换成json格式的字符串

    展开全文
  • Python 中的 字符格式

    万次阅读 多人点赞 2019-03-09 10:37:37
    Python 中的 字符格式化1. 字符格式化的种类2. % 格式化方式3. % 格式化方式例子4. format 格式化方式5. format 格式化方式例子 1. 字符格式化的种类 Python 的字符格式化有两种方式: % 格式符方式,...

    1. 字符串格式化的种类

    Python 的字符串格式化有两种方式: % 格式符方式,format 方式

    2. % 格式化方式

    %[(name)][flags][width].[precision]typecode
    
        (name): 可选,用于选择指定的key
        flags: 可选,可供选择的值有:
            +: 右对齐;正数前加正好,负数前加负号;
            -: 左对齐;正数前无符号,负数前加负号;
             : 右对齐;正数前加空格,负数前加负号;
            0: 右对齐;正数前无符号,负数前加负号;用 0 填充空白处
        width: 可选,占有宽度
        .precision: 可选,小数点后保留的位数
        typecode: 必选
            s,获取传入对象的 __str__ 方法的返回值,并将其格式化到指定位置
            r,获取传入对象的 __repr__ 方法的返回值,并将其格式化到指定位置
            c,整数:将数字转换成其 unicode 对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持 0-255);字符:将字符添加到指定位置
            o,将整数转换成八进制表示,并将其格式化到指定位置
            x,将整数转换成十六进制表示,并将其格式化到指定位置
            d,将整数、浮点数转换成十进制表示,并将其格式化到指定位置
            e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写 e )
            E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写 E )
            f,将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
            F,同上
            g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是 e;)
            G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是 E;)
            %,当字符串中存在格式化标志时,需要用 %% 表示一个百分号
    

    3. % 格式化方式例子

    [[fill]align][sign][#][0][width][,][.precision][type]
    
            fill: 【可选】空白处填充的字符
            align:【可选】对齐方式(需配合width使用)
                <: 内容左对齐
                >: 内容右对齐(默认)
                =: 内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号 + 填充物 + 数字
                ^: 内容居中
            sign: 【可选】有无符号数字
                +: 正号加正,负号加负;
                -: 正号不变,负号加负;
                空格: 正号空格,负号加负;
            #:【可选】对于二进制、八进制、十六进制,如果加上 #,会显示 0b/0o/0x,否则不显示
            ,: 【可选】为数字添加分隔符,如:1,000,000
            width: 【可选】格式化位所占宽度
            .precision: 【可选】小数位保留精度
            type: 【可选】格式化类型
                传入” 字符串类型 “的参数
                    s: 格式化字符串类型数据
                    空白: 未指定类型,则默认是 None,同 s
                传入“ 整数类型 ”的参数
                    b: 将十进制整数自动转换成二进制表示然后格式化
                    c: 将十进制整数自动转换为其对应的 unicode 字符
                    d: 十进制整数
                    o: 将十进制整数自动转换成8进制表示然后格式化;
                    x: 将十进制整数自动转换成16进制表示然后格式化(小写 x )
                    X: 将十进制整数自动转换成16进制表示然后格式化(大写 X )
                传入“ 浮点型或小数类型 ”的参数
                    e: 转换为科学计数法(小写 e )表示,然后格式化;
                    E: 转换为科学计数法(大写 E )表示,然后格式化;
                    f: 转换为浮点型(默认小数点后保留 6 位)表示,然后格式化;
                    F: 转换为浮点型(默认小数点后保留 6 位)表示,然后格式化;
                    g: 自动在e和f中切换
                    G: 自动在E和F中切换
                    %: 显示百分比(默认显示小数点后 6 位)
    
    

    4. format 格式化方式

    # 字符串格式化
    
    print("I am %s, %d years old." % ("Y", 18))
    print("I am %s, %s years old." % ("Y", 18))
    print("I am %s, %s years old." % ("Y", ["18"]))
    print("I am %s, %s years old." % ("Y", (18,)))
    
    # 保留
    print("percent %0.2f%%." % 23.36666)
    # 截取
    print("percent %.5s." % 23.36666)
    
    # 字典形式
    print("I am %(name)s, %(age)d years old." % {"name": "Y", "age": 18})
    
    # 其他
    print("I am \033[42;1m%(name)10s\033[0m, "
          "\033[42;1m%(age)-10d\033[0m years old."
          % {"name": "Y", "age": 18})
    
    print("user", "root", "password", "root", sep=":")
    
    

    结果:
    在这里插入图片描述

    5. format 格式化方式例子

    # format 格式
    print("I am {}, {} years old, who is {}.".format("Y", "22", "wise"))
    print("I am {0}, {1} years old, who is {2}.".format("Y", "22", "wise"))
    print("I am {1}, {1} years old, who is {1}.".format("Y", "22", "wise"))
    
    print("I am {name}, {age} years old, who is {adj}.".format(name="Y", age="22", adj="wise"))
    print("I am {name}, {age} years old, who is {adj}.".format(**{"name": "Y", "age": "22", "adj": "wise"}))
    
    print("I am {0[0]}, {0[1]} years old, who is {0[2]}.".format(["Y", "22", "wise"], [1, 2, 3]))
    print("I am {:s}, {:d} years old, who is {:f}.".format("good", 122, 12.22))
    print("I am {:s}, {:d} years old, who is {:f}.".format(*["good", 122, 12.22]))
    
    # 进制,百分比
    print("number: {:b}, {:o}, {:d}, {:x}, {:X}, {:0.2%}".format(12, 15, 17, 999, 999, 0.55))
    
    

    结果:
    在这里插入图片描述

    展开全文
  • kettle连接设置字符编码

    千次阅读 2021-12-09 10:16:11
    某些时候,在使用kettle处理表输入,表输出的时候,会因为kettle连接数据库设置字符编码格式不对,导致字符乱码。 1.解决方法 在命名参数栏填写:characterEncoding,值的那栏写:utf8 set names utf8; ...

    某些时候,在使用kettle处理表输入,表输出的时候,会因为kettle连接数据库设置的字符编码格式不对,导致字符乱码。
    1.解决方法
    在命名参数栏填写:characterEncoding,值的那栏写:utf8
    在这里插入图片描述
    set names utf8;
    在这里插入图片描述

    展开全文
  • C++字符格式化的几种方式

    万次阅读 2019-08-10 15:47:08
    使用snprintf 使用boost::format 使用stringstream 具体示例 使用snprintf #include <...// 准备数据 string haha("haha"); int num = 3; // 准备格式 string fmt("test string: %s. test number: ...
    1. 使用snprintf格式化字符串
    2. 使用boost::format格式化字符串
    3. 使用stringstream格式化字符串

    具体示例

    1. 使用snprintf格式化字符串
    #include <stdio.h>
    using std::string;
    // 准备数据
    string haha("haha");
    int num = 3;
    // 准备格式
    string fmt("test string: %s. test number: %d");
    char targetString[1024];
    // 格式化,并获取最终需要的字符串
    int realLen = snprintf( targetString, 
    						sizeof(targetString), 
    						fmt.c_str(), 
    						haha.c_str(), 
    						num );
    

    参考链接http://www.cplusplus.com/reference/cstdio/snprintf/

    1. 使用boost::format格式化字符串
    #include "boost/format.hpp"
    // 准备数据
    string haha("haha");
    int num = 3;
    // 准备格式
    boost::format fmt("test string: %s. test number: %d");
    // 格式化
    fmt % haha % num;
    // 获取最终需要的字符串
    string targetString = fmt.str();
    

    参考链接https://www.boost.org/doc/libs/1_70_0/libs/format/example/sample_formats.cpp

    1. 使用stringstream格式化字符串
    #include <sstream>
    using std::stringstream;
    // 准备数据
    string haha("haha");
    int num = 3;
    // 准备根据格式造字符串流
    stringstream fmt;                       /* 或者使用 ostringstream */
    // 造字符串流
    fmt << "test string: " << haha << ". test number: " << num;
    // 获取最终需要的字符串
    string targetString = fmt.str();
    

    参考链接http://www.cplusplus.com/reference/ostream/ostream/operator<</

    展开全文
  • 后端返回数据格式字符串的问题

    千次阅读 2020-01-09 11:18:04
    Respons 里面的数据没有被着色,说明浏览器把它识别为字符串了,让后端那边改了又改,还是不行。 后面发现是后端的 Respon Header里面的 Content-Type 设置错误了。错误返回的时候,它的 Content-Type 是 text/html...
  • python字符格式化深入详解(四种方法)

    万次阅读 多人点赞 2020-04-21 11:05:11
    前言:本文详细整理了python字符格式化的几种方式。 一、使用 % 符号来进行格式格式符为真实值预留位置,并控制显示的格式格式符可以包含有一个类型码,用以控制显示的类型,如下: %s 字符串 (采用str()...
  • 通信格式和数据格式

    千次阅读 2021-01-17 16:56:25
    目录前言通信格式串行异步传送字符格式波特率数据格式 前言 通信格式和数据格式这两个东西以前没有注意过,在使用单片机串口的时候也没有思考过这个方面,认为配置好了就行了。在这里区分一下通信格式和数据格式。 ...
  • Caused by: org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成。 ” 具体的错误信息如下: Caused by: org.apache.ibatis.builder.BuilderException: Error creating document ...
  • 在vue中使用axios实现跨域请求需求分析:在项目中需要抓取qq音乐的歌曲列表的数据,由于要请求数据的地址url=https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg。从qq音乐的官网上可以看到该请求的请求...
  • JMeter设置响应数据的编码格式

    千次阅读 2019-06-19 14:33:23
    1.修改配置文件jmeter.properties,搜索ISO,可以找到默认编码格式为ISO-8859-1,手动修改为UTF-8 2.增加元器件 在线程组右键,添加->后置处理器->BeanShell PostProcessor 增加后,在Script栏中填写如下代码...
  • SQL字符数据的查询操作

    千次阅读 2018-07-21 17:57:06
    字符数据类型 SQL Server 支持两种字符数据类型——常规和 Unicode。常规数据类型包括 CHAR 和 VARCHAR,Unicode 数据类型包括 NCHAR 和 NVARCHAR。
  • C语言如何将数据转化为字符格式

    千次阅读 2018-07-28 14:15:03
    函数功能:把格式化的数据写入某个字符串 函数原型:int sprintf( char *buffer, const char *format [, argument] … ); 返回值:字符串长度(strlen) 例子: char* who = "I"; char* whom = "...
  • 在SPSS中,变量属性是字符格式 现在要将它改成日期格式,如下: ”27-Apr-2014 21:59:54“。 办法: 将SPSS中的数据复制至Excel文档中,在Excel文档中”设置单元格格式”, “自定义”, 设置成 “d-mmm-...
  • R语言 处理字符数据

    千次阅读 2020-04-15 11:38:05
    处理字符数据,需要掌握一些正则表达式的知识,及一些相应的函数。 正则表达式 正则表达式是用于描述或匹配一个文本集合的表达式。 所有英文字母、数字和很多可现实的字符本身就是正则表达式,用于匹配它们自己。 ...
  • 格式化JSON数据字符

    万次阅读 2014-09-29 17:25:00
    控制台直接打印的JSON对象,就是一行字符串,不方便查看;为方便查看JSON对象,写了如上格式化JSON的java方法。
  • 今天同事写一个查询接口的时候,出错:元素内容必须由格式正确的字符数据或标记组成。 错误原因:mybatis查询的时候,需要用到运算符 小于号:,在mybatis配置文件里面,这种会被认为是标签,所以解析错误 ...
  • 通过mapper添加的时候已经使用了to_date(),却还是报文字与格式不匹配,多的不说了看代码吧 ``` insert into schedule_job ( bean_name , method_name , params , cron_...
  • 异步同步通信数据格式

    千次阅读 2020-07-10 13:52:52
    串口扫盲六:异步通信方式 </div> 串行通信可以分为两种类型:同步通信、异步通信. ...每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有...
  • LABVIEW格式字符

    千次阅读 2019-05-06 15:07:05
    格式字符串%10.2f中,10表示数据宽度为10,则整数部分为7位、小数点1位、小数点后2位。 5、左侧调整填充0 与整型数转换为字符串一样,当位数不足时,左侧默认填充空格,也可以填充0. 格式字符串%010.2f表示...
  • 今天遇到一个问题,我在导Excel的时候,有的数据格式为010B、060D等这种格式的数据,当导入到Excel之后就变成10B、60D了; 解决这种问题的办法是:在你需要导出的html标签中加入样式:style="mso-number-format:\...
  • 错误原因:mybatis查询的时候,需要用到运算符 小于号:,在mybatis配置文件里面,这种会被认为是标签,所以解析错误 错误事例:   ... and ITEMS_NAME LIKE '%${objectProperty.itemsName}%'  ...
  • sscanf() 的作用:从一个字符串中读进与指定格式相符的数据.  原型: int sscanf (const char str,const char format,……..);  说明: sscanf()会将参数str的字符串根据参数format字符串来转换并格式数据。...
  • 格式字符详解

    千次阅读 多人点赞 2019-05-17 23:22:18
    格式字符 1.d格式字符 功能:用来输出十进制数 格式:%d:按整型数据的实际长度输出 %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。 %ld:输出长整型数据。 2.o...
  • 字符串时间日期格式

    万次阅读 2018-06-04 17:08:58
    格式字符串前面讲了字符串的基本操作,见链接点击打开链接1.日期格式化:转换符s说明s示例%tey一月中的某一天(1-31)6%tbz指定语言环境的月份简称Feb(英文),二月(中文)%tBz指定语言环境的月份全称February...
  • 出错:元素内容必须由格式正确的字符数据或标记组成。 错误原因:mybatis查询的时候,需要用到运算符 小于号:,在mybatis配置文件里面,这种会被认为是标签,所以解析错误 错误事例: [html] view ...
  • 格式控制字符

    千次阅读 多人点赞 2019-07-25 16:30:32
    格式字符串:以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如: “%d” 表示按十进制整型输出; "%ld"表示按十进制长整型输出; "%c"表示按字符型输出等。 非格式字符串:...
  • Springboot进行前后端数据传递格式json字符串的简单理解 1、对象的序列化和反序列化都什么时候用? 当你想把内存中的对象保存到磁盘上的文件或者数据库中时,当你想用套接字在网络上传送对象时,当你想通过RMI...
  • 元素内容必须由格式正确的字符数据或标记组成。 元素内容必须由格式正确的字符数据或标记组成 当时我的代码如下 <!-- 查询7天的数据 --> AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) 后来来网上...
  • 首先连接数据库test2,...如果之前表格的编码格式为latin1,导入数据后编码会出错,则需要新建表格, 点开表格,点击文件–设计表,然后设置属性值,或者直接点击选项,进行字符编码修改,改为utf8 然后设置字符...
  • java格式化输出与字符格式化输入

    千次阅读 2018-11-15 17:56:04
    java格式化输出与字符格式化输入 Java格式化输出  Java中可以使用System.out.print()将数值x输出到控制台上,在早期的java版本中,格式化输出数值曾经引发过争议,不过在javaSE5以后,引入了c语言中的格式化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,166,733
精华内容 1,666,693
关键字:

怎么设置字符数据格式