`

14好的学习

阅读更多
//包名
package JSON;

//引用包
/* 注意:
* 引用java
*/
import java.lang.reflect.Array;

//引用包
/* 注意:
* 类提供了动态创建和访问数组元素的各种静态方法
*/
import java.util.ArrayList;

//引用包
/* 注意:
* 提供公共的执行操作方法的接口
*/
import java.util.Collection;

//引用包
/* 注意:
* 提供公共的执行操作方法的基于哈希表的 Map 接口的实现
*/
import java.util.HashMap;

//引用包
/* 注意:
* 提供公共的执行操作方法的对 collection 进行迭代的迭代器
*/
import java.util.Iterator;

//引用包
/* 注意:
* 提供公共的执行操作方法的列表
*/
import java.util.List;

//引用包
/* 注意:
* 提供公共的执行操作方法的映射到值的对象
*/
import java.util.Map;

//引用包
/* 注意:
* 提供公共的执行操作方法的接口
*/
import java.util.Map.Entry; 

//公共的类名
/**
* JsDataTools 类
* @author xinjie
*
*/
/*
* JS数据交换格式
* @version v0.1
* @author longHP
*/ 
public class JsDataTools { 

//定义方法
/**
* getJsData() 方法
* @param Object obj
* @return createJsData(obj)
*/
    /*
     * 获取js数据
     * @param 元数据map
     * @return js数据
     */ 
    public synchronized static String getJsData(Object obj) {
    //返回值
        return createJsData(obj); 
    }
   
    //自动生成   
    @SuppressWarnings("unchecked")
   
    //定义方法
    /**
     * createJsData()方法
     * @param Object obj
     * @return"\"\""
     */
    /* 注意:
     * 生成js数据
     * @param 元数据map
     * @return js数据
     */
    public static String createJsData(Object obj) {
   
    //if语句
    /* 注意:
    * 如果null等于odj
    */
        if (null == obj) {
       
        //返回值
            return "\"\""; 
        }
       
        //创建实例化对象
        /* 注意:
         * StringBuffer
         * 线程安全的可变字符序列
         */
        StringBuffer resultStr = new StringBuffer(); 
       
        //if语句
        /* 注意:
         * 如果obj
         * instanceof
         * 作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据
         * Collection
         * 集合List、Set等类型
         */
        if (obj instanceof Collection) {
       
        //调用方法
            resultStr.append("[");
           
            //把接口类型的obj赋值给接口卡类型collection
            Collection collection = (Collection) obj;
           
            //if语句
            /* 注意:
             * 接口类型的collection的存储空间>0
             */
            if (collection.size() > 0) {
           
            //获得返回包含此 collection 中所有元素的数组给元素的表示数组形式的collectionObj
                Object[] collectionObj = collection.toArray();
               
                //if语句
                /* 注意:
                 * 字符型i = 0 i < collectionObj的数组长度 i+1
                 */
                for (int i = 0; i < collectionObj.length; i++) { 
               
                //将createJsData方法参数追加到序列resultSrr
                    resultStr.append(createJsData(collectionObj[i]) + ","); 
                }
               
                //resultStr移除此序列指定位置的 char参数
                resultStr.deleteCharAt(resultStr.lastIndexOf(",")); 
            }
           
            //调用方法
            resultStr.append("]");
           
          //if语句
          /* 注意:
           * 否则如果 Obj
           * 作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据
           * Map类型
           */
        } else if (obj instanceof Map) {   
       
        //调用方法
            resultStr.append("{");
           
            //将Map里面所有映射的 obj给Map类型的map
            Map map = (Map) obj; 
           
            //if语句
            /* 注意:
             * map储存空间 > 0
             */
            if (map.size() > 0) {
           
            //将map对象迭代的迭代器给iter
            /* 注意:
            * Iterator
            * 迭代器泛型里面是
            * Entry
            * 接口
            */
                Iterator<Entry> iter = map.entrySet().iterator(); 
               
                //whlie循环语句
                /* 注意;
                 * while
                 * 循环条件
                 * iter
                 * hasNext()
                 * 是否还有下一个
                 */
                while (iter.hasNext()) { 
               
                //
                    Map.Entry entry = iter.next(); 
                    String key = entry.getKey().toString(); 
                    resultStr.append("\"" + key + "\":");    // jquery1.4以上要求双引号包裹 
                    Object tempObj = entry.getValue(); 
                    resultStr.append(createJsData(tempObj) + ","); 
                } 
                resultStr.deleteCharAt(resultStr.lastIndexOf(",")); 
            } 
            resultStr.append("}"); 
        } else {    // 基本类型 
            try { 
                int arrLength = Array.getLength(obj); 
                resultStr.append("["); 
                if (arrLength > 0) { 
                    for (int i = 0; i < arrLength; i++) { 
                        resultStr.append(createJsData(Array.get(obj, i)) + ","); 
                    } 
                    resultStr.deleteCharAt(resultStr.lastIndexOf(",")); 
                } 
                resultStr.append("]"); 
            } catch (IllegalArgumentException e) {    // 不是数组,是最基本的数据 
                resultStr.append("\"" + stringToJson(obj + "") + "\""); 
            } 
        } 
        return resultStr.toString(); 
    } 
     
    /**
     * 处理特殊字符
     * @param json字符串
     * @return 处理过的字符串
     */ 
    public static String stringToJson(String str) { 
        StringBuffer sb = new StringBuffer(); 
        for (int i = 0; i < str.length(); i++) { 
            char c = str.charAt(i); 
            switch (c) { 
                case '\"': 
                    sb.append("\\\""); 
                    break; 
                case '\\': 
                    sb.append("\\\\"); 
                    break; 
                case '/': 
                    sb.append("\\/"); 
                    break; 
                case '\b': 
                    sb.append("\\b"); 
                    break; 
                case '\f': 
                    sb.append("\\f"); 
                    break; 
                case '\n': 
                    sb.append("\\n"); 
                    break; 
                case '\r': 
                    sb.append("\\r"); 
                    break; 
                case '\t': 
                    sb.append("\\t"); 
                    break; 
                default: 
                    sb.append(c); 
            } 
        } 
        return sb.toString(); 
    } 
     
    @SuppressWarnings("unchecked") 
    public static void main(String[] args) { 
        Map<String, Object> map = new HashMap<String, Object>(); 
        map.put("a", "1"); 
        map.put("b", "2"); 
        int[] intArr = {1,2,3}; 
        map.put("intArr", intArr); 
        Map childMap = new HashMap(); 
        childMap.put(3, 5); 
        childMap.put(7, new HashMap()); 
        childMap.put(new Object(), intArr); 
        map.put("map", childMap); 
        List childList = new ArrayList(); 
        childList.add(true); 
        childList.add(new ArrayList()); 
        childList.add(intArr); 
        map.put("list1", childList); 
        System.out.println(JsDataTools.getJsData(map)); 
    } 

if如果 else否 for循环 Boolean是否
分享到:
评论

相关推荐

    2017年版企业会计准则第14号收入的学习与应用.pptx

    【2017年版企业会计准则第14号收入的学习与应用】 企业会计准则的修订是为了适应经济环境的变化和业务模式的创新。2017年版的企业会计准则第14号,即《收入》的修订,旨在解决现有准则在收入确认中遇到的复杂性和不...

    2022年度会计继续教育企业会计准则第14号--收入考试答案借鉴.pdf

    《企业会计准则第14号——收入》是会计领域中关于确认、计量和报告收入的重要准则,对于企业和会计从业人员来说,理解和掌握这一准则至关重要。2017年,这一准则进行了重大更新,以适应经济环境的变化和提升财务报告...

    7号信令学习资料

    ### 七号信令系统(No.7 SS7)学习资料综合分析 #### 一、基础知识概述 **七号信令系统(No.7 SS7)**是一种用于电信网络的现代信号传输系统,广泛应用于固定电话网络、移动通信网络以及各种其他电信服务中。其...

    物化生组合暑假作业(6号-14号).rar

    【标题】"物化生组合暑假作业(6号-14号).rar" 提供的是高中阶段学生的暑期作业集合,主要涵盖了物理、化学和生物三个学科,时间跨度为6号到14号。这样的资源对于正在学习这些科目的学生来说,是巩固知识、预习新...

    14号打卡(2).rar

    而"14号打卡"可能指的是某种学习或工作日程的记录,但并不直接指向任何特定的IT概念。 不过,如果我们可以假设这是一个与IT相关的打卡记录,可能涉及的知识点可能包括: 1. **时间管理**:在IT行业中,时间管理是...

    第14章 基于Q学习的无线体域网路由方法.ppt

    基于Q学习的无线体域网路由方法 本章节介绍了基于Q学习的无线体域网路由方法。无线体域网(WBAN)是一种自组织的网络,节点在电源能量、计算能力、通信能力等方面具有局限性,因此设计无线体域网的路由协议是非常...

    Vue14源码学习资料

    Vue14源码学习资料主要包含了一些关键文件,这些文件是Vue项目开发的基础,并且对于理解Vue的工作原理和内部机制非常有帮助。以下是对这些文件的详细解释: 1. **.eslintrc.cjs**:这是ESLint的配置文件,它是一个...

    2009年5月14号 我下载的一些题目

    标题 "2009年5月14号 我下载的一些题目" 提示我们这是一个关于IT行业面试题目的集合,可能包含的是当时流行的或者常见的一些技术问题。描述中的 "热乎的来,刚出锅的来" 暗示这些题目是最新、最及时的,反映了当时的...

    CCIE学习指南实验室操作14-26(下半部)

    这份压缩包文件包含了14到26号实验的PDF文档,包括19.PDF至25.PDF,可能分别对应了每个实验的步骤、讲解、示例配置和解决方案。每一份PDF文档可能详细解析了实验的目标、所需设备、配置命令、问题诊断和优化策略等...

    ansys14.0学习资料

    3. **面属性指定命令** (`AATT`): 使用`AATT`命令可以设定未划分网格的面的属性,包括材料号(`MAT`), 实常数号(`REAL`), 单元类型号(`TYPE`), 坐标系号(`ESYS`)和区域号(`SECN`)。这些属性在面划分网格时会被应用。...

    2018网络教育学习概论试题与答案解析.doc

    14. **个人信息修改**:如个人信息有误,学生应联系所属学习中心的老师进行修改。 15. **学习时长**:学生学习一门课程的时间通常不少于三个月。 此外,网络教育的学习方法包括制定个人学习计划、合理安排时间、...

    有理数的乘法14PPT学习教案.pptx

    2. **异号得负**。这条规则表明当两个有理数的符号不同时(一个是正数,另一个是负数),它们的乘积是负数。在此规则中,我们需要注意的是,不论正数或负数,它们在乘法中的绝对值依然要相乘,仅在最后确定结果的...

    2017年1月14号托福口语机经.pdf

    例如,考生可以将高中和大学进行比较,强调高中时期繁重的学习任务、长时间的课堂学习,几乎没有个人时间,而大学则有更多的自由时间去参与社团活动、志愿者工作或社区服务,且学习目的从基础知识构建转向专业选择,...

    14号关于做好2010级毕业实习总结和毕业论文(设计)答辩工作的通知.pdf

    为确保学生能够顺利从理论学习过渡到实际工作环境中,惠州经济职业技术学院特此发布了“14号关于做好2010级毕业实习总结和毕业论文(设计)答辩工作的通知”,以规范毕业实习及论文答辩流程,保证教育质量。...

    现代大学英语精读2 lesson14PPT学习教案.pptx

    【现代大学英语精读2 Lesson14】的学习教案聚焦于一篇新闻报道,讲述了1986年美国挑战者号航天飞机灾难性的发射事件。这篇文章采用了新闻报道的风格,按照事件发生的自然顺序进行叙述,展现了人类在追求科学发现过程...

    无法运行2015年03月14号656安卓LW基于安卓的推箱子游戏设计与开发.zip

    该压缩包文件“无法运行2015年03月14号656安卓LW基于安卓的推箱子游戏设计与开发.zip”包含了关于在Android平台上开发推箱子游戏的相关资源。推箱子游戏是一款经典的逻辑益智游戏,玩家需要通过操控主角在网格状的...

    汇编语言讲稿14PPT学习教案.pptx

    《汇编语言讲稿14PPT学习教案》是一份关于汇编语言的专业教学资料,主要探讨了CPU对端口的读写操作以及与之相关的CMOS RAM芯片和逻辑移位指令。 首先,CPU能够直接访问三种数据源:内部寄存器、内存单元和端口。在...

    深度学习matlab源代码案例实战前十五章.zip

    深度学习机器学习图像处理的matlab源代码前十五章实战整理集合 第 01 章 基于直方图优化的图像去雾技术 第 02 章 基于形态学的权重自适应图像去噪 第 03 章 基于多尺度形态学提取眼前节组织 第 04 章 基于Hough变化...

    液压传动基础知识14PPT学习教案.pptx

    在液压系统中,常用的粘度指标包括动力粘度、运动粘度和相对粘度,其中运动粘度常用于表示液压油的牌号,例如N32号液压油的运动粘度为32mm²/s。 本学习教案的目的是使学习者能够系统地掌握液压传动基础知识,为其...

    八年级英语canyoucometomyparty14PPT学习教案.pptx

    - 掌握日期的表达,如It’s Thursday the 12th.(今天是12号星期四)。 2. 将来时态的应用: - 使用“be going to”结构表达计划或打算做的事情,例如:I’m going to have a picnic.(我打算去野餐)。 - 针对...

Global site tag (gtag.js) - Google Analytics