Java之AJSON概念和语法

Java之AJSON概念和语法

开发工具与关键技术:MyEclipse 10,java
作者:刘东标
撰写时间:2019-06-12

1.概念:

JavaScript object Notation JavaScript对象·表示法
在这里插入图片描述

Person p=new Person();
p.setName(“张三”);
p.setAge(23);
p.setGender(“男”);
var p={“name”:”张三”,”age”:23,”gender”:”男”};

*json现在多用于存储和交换文本信息的语法
*进行数据的传输
*JSON比XML更小、更快、更易解析

2.语法:

1.基本规则
*数据在名称/值对中:json数据是由键值对构成的
*值得取值类型:
1、数字(整数或浮点数)
2、字符串(在双引号中)
3、逻辑值(true或false)
4、数组(在方括号中)
5、对象(在花括号中)
6、null
*数据由逗号分隔:多个键值对由逗号分隔
*花括号保存对象:使用{}定义json格式
*方括号保存数组:[ ]
2.获取数据:
1、json对象.键名
2、json对象[“键名”]
3、数组对象[索引]
//1、定义基本格式

var person={"name":"张三","age":23,"gender":"男"};
 //获取name的值
   //var name=person.name;
   var name1=person["name"];
   //alert(name1);
   
   //alert(person); 
  //2.嵌套格式  {}————>[]
   var persons={
      "persons":[
      {"name":"张三","age":23,"gender":"男"},
      {"name":"李四","age":24,"gender":"女"},
      {"name":"王五","age":25,"gender":"保密"}
      ]
   };
     //获取王五值
     //var p=persons.persons[2]["name"];
     var p=persons.persons[2].name;
    // alert(p);
    // alert(persons);
   //3.嵌套格式 []————>{}
      var ps=[{"name":"张三","age":23,"gender":"男"},
      {"name":"李四","age":24,"gender":"女"},
      {"name":"王五","age":25,"gender":"保密"}];
     // alert(ps[1].name)
      //alert(ps);
      
      //获取person对象中所有的键和值
      //for in 循环
     /*  for(var key in person){
         //这样的方式获取不行。因为相当于person."name"
         //alert(key+":"+person.key);
         alert(key+":"+person[key]);
      } */
      
      
      //获取ps中的所有的值
      for(var i=0;i<ps.length;i++){
         var p=ps[i];
         for(var key in p){
         //alert(key+":"+p[key]);
         }
      }

3.JSON数据和Java对象的相互转换

*JSON解析器:
*常见的解析器:Jsonlib,Gson,fastjson,jackson
1、JSON转为Java对象
2、Java对象转换JSON
1.使用步骤:
1.导入jackson的相关jar包
2.创建jackson核心对象 ObjectMapper
3.调用ObjectMapper的相关方法进行转换

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
JSON++ Build Status Introduction JSON++ is a light-weight JSON parser, writer and reader written in C++. JSON++ can also convert JSON documents into lossless XML documents. Contributors http://github.com/hjiang http://github.com/elanthis http://github.com/r-lyeh If you've made substantial contribution, please add your link here. Why another JSON parser? Perhaps because web service clients are usually written in dynamic languages these days, none of the existing C++ JSON parsers fitted my needs very well, so I wrote one that I used in another project. My goals for JSON++ were: Efficient in both memory and speed. No third party dependencies. JSON++ only depends on the standard C++ library. Cross platform. Robust. Small and convenient API. Most of the time, you only need to call one function and two function templates. Easy to integrate. JSON++ only has one source file and one header file. Just compile the source file and link with your program. Able to construct documents dynamically. JSON writer: write documents in JSON format. Other contributors have sinced added more functionalities: XML writer: convert documents to JSONx format. See http://goo.gl/I3cxs for details. XML writer: convert documents to JXML format. See https://github.com/r-lyeh/JXML for details. XML writer: convert documents to JXMLex format. See https://github.com/r-lyeh/JXMLex for details. XML writer: convert documents to tagged XML format. See https://github.com/hjiang/jsonxx/issues/12 for details. Compiler version You need a modern C++ compiler. For older compilers, please try legacy branch. Configuration Strict/permissive parsing JSONxx can parse JSON documents both in strict or permissive mode. When jsonxx::Settings::Parser is set to Strict, JSONxx parser will accept: Fully conformant JSON documents only. When jsonxx::Settings::Parser is set to Permissive, JSONxx parser will accept: Fully conformant JSON documents Ending commas in arrays and objects: { "array": [0,1,2,], } Single quoted strings: ['hello', "world"] C++ style comments: { "width": 320, "height": 240 } //Picture details Default value is Permissive. When jsonxx::Settings::UnquotedKeys is set to Enabled, JSONxx parser will accept: Unquoted keys: {name: "world"} Default value is Disabled. Assertions JSONxx uses internally JSONXX_ASSERT(...) macro that works both in debug and release mode. Set jsonxx::Settings::Assertions value to Disabled to disable assertions. Default value is Enabled. Usage The following snippets are from one of the unit tests. They are quite self-descriptive. using namespace std; using namespace jsonxx; string teststr( "{" " \"foo\" : 1," " \"bar\" : false," " \"person\" : {\"name\" : \"GWB\", \"age\" : 60,}," " \"data\": [\"abcd\", 42]," "}" ); // Parse string or stream Object o; assert(o.parse(teststr)); // Validation. Checking for JSON types and values as well assert(1 == o.get<Number>("foo")); assert(o.has<Boolean>("bar")); assert(o.has<Object>("person")); assert(o.get<Object>("person").has<Number>("age")); assert(!o.get<Object>("person").has<Boolean>("old")); assert(o.get<Object>("person").get<Boolean>("old", false)); assert(o.has<Array>("data")); assert(o.get<Array>("data").get<Number>(1) == 42); assert(o.get<Array>("data").get<String>(0) == "abcd"); assert(o.get<Array>("data").get<String>(2, "hello") == "hello"); assert(!o.has<Number>("data")); cout << o.json() << endl; // JSON output cout << o.xml(JSONx) << endl; // JSON to XML conversion (JSONx subtype) cout << o.xml(JXML) << endl; // JSON to XML conversion (JXML subtype) cout << o.xml(JXMLex) << endl; // JSON to XML conversion (JXMLex subtype) // Generate JSON document dynamically using namespace std; using namespace jsonxx; Array a; a << 123; a << "hello world"; a << 3.1415; a << 99.95f; a << 'h'; a << Object("key", "value"); Object o; o << "key1" << "value"; o << "key2" << 123; o << "key3" << a; cout << o.json() << endl; To do Custom JSON comments (C style /**/) when permissive parsing is enabled.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值