json格式数据简介

来源:互联网 发布:知乎尚永丰 编辑:程序博客网 时间:2024/06/05 18:43
昨晚在22班上课,目前是jsp部分,没有使用Servlet作为控制层,直接在jsp文件中写入java代码,但在新闻系统的前台需要实现局部刷新功能,使用Ajax提交方式完成,关于对象的数据传输相对麻烦些,所以我们自己模拟了json格式数据传递,最后通过js代码转换完成项目。简介给大家介绍下json格式数据:
        JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#Java、JavaScript、PerlPython等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
        

JSON 语法规则

JSON 语法是 JavaScript 对象表示语法的子集。
  • 数据在键值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON 名称/值对

JSON 数据的书写格式是:名称/值对。
名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:
1
"firstName":"John"
这很容易理解,等价于这条 JavaScript 语句:
1
firstName="John"
 
        

JSON 值

JSON 值可以是:
  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null
    
  所以我们在Message实体类中重写了toString();
    public String  toString(){
            return "{\"m_id\":\""+this.m_id+"\",\"m_info\":\""+this.m_info+"\",\"m_author\":\""+this.m_author+"\",\"m_date\":\""+this.m_date+"\"}";
    } 

 
JSON[1]  结构有两种结构[2] 
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
  为了满足Js中的需求,我们将查询的list集合中的数据转为json字符串:
JSONUtil:
    public <T>   String  toArray(List <T>  list){
            StringBuffer   sb =  new   StringBuffer();
            sb.append("[");
            for(int  i =0 ; i<list.size(  );  i++){
                        if(i==list.size()-1){
                            sb.append(list.get(i).toString()+"]");
                        }else{
                                sb.append(list.get(i).toString()+",");

                        }
            }
    }


jsp页面转为对象数据
  var json = eval("("+data+")");
 for(int i =0;i<json.length;i++){
        console.info(json[i].m_id+"----"+json[m].m_author);
  }

能获取到每个对象中的属性后,那么通过Js代码可以将值写入页面中。
所以大家在做新闻系统的时候目前采取此方式完成,后期我们会学习相应工具完成。 
0 0
原创粉丝点击