Json格式转换

时间:2023-01-03 23:08:25

验证Json格式可以进入 http://json.cn/

json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,必须是String类型,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

example:

 {
"animals": {
"dog": [
{
"name": "Rufus",
"age":15
},
{
"name": "Marty",
"age": null
}
]
}

经过对象、数组2种结构就可以组合成复杂的数据结构了。

JSON具有以下这些形式

1、对象(object)

  对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

  example{"key1":"value1" ,

            "key2":"value2" ,

            "key3":"value3"}

2、数组(array):数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
   2.1 值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。

  example:[2,6,8]   ["str1","str2","str3","str4"]

这些结构可以嵌套,字符串(string) 是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。JSON的字符串(string)与C或者Java的字符串非常相似。数值(number) 也与C或者Java的数值非常相似。只是JSON的数值没有使用八进制与十六进制格式。
同时,可以在任意标记之间添加空白。

Json格式转java对象步骤

1、获取Json格式的字符串;

2、将字符串转换为Json对象

3、将Json对象转换成java对象

场景1:Json格式的字符串[28,36,37],这是一个Json格式的数值数组

 String buIdSettings = LionConfigUtils.getProperty("tp-audit-admin-mq.splitedBU");
JSONArray jsonarray = JSONArray.fromObject(buIdSettings);
List<Integer> buIdList = jsonarray.toList(jsonarray);

场景2: Json格式的字符串{"28":"36,37"},这是Json格式的对象

 import com.alibaba.fastjson.JSONObject;
lion配置:{"28":"36,37"}
JSONObject jsonBUIds= JSON.parseObject(Json格式字符串);
String BUIds = (String)jsonBUIds.get("28");
String[] splitedBUIdsStrArr = BUIds.split(",");
List<Integer> buIdsList = new ArrayList<Integer>();
for (int i=0;i<splitedBUIdsStrArr.length;i++){
buIdsList.add(Integer.valueOf(splitedBUIdsStrArr[i]));
}

场景3:Json转数组:

[
{
"value": "Risk",
"text": "风控",
"permissionId":50025
},
{
"value": "Qualification",
"text": "品控",
"permissionId":50037
},
{
"value": "Ad",
"text": "推广",
"permissionId":50637
}
]

以上字符串是一个数组,数组的组成元素是对象


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

 String ruleCategories = LionConfigUtils.getProperty("gb-rule-service.ruleCategories");
JSONArray array = JSONArray.fromObject(ruleCategories);
for(int i = 0; i < array.size(); i++) {
JSONObject object = array.getJSONObject(i);
final String categoryName = (String)object.get("value");
}

场景4:json转java Map

{
"高频操作":"MTAHomeHighFrequencyModule",
"经营数据":"MTAHomeDataModule",
"功能入口":"MTAHomeFunctionEntryModule",
"经营建议":"MTAHomeSuggestionModule",
"顾客营销":"MTAHomeCustomerGuidedModule",
"抢占稀缺活动位":"MTAHomeSeizeMarketModule",
"成功案例":"MTAHomeSuccessCaseModule"
}

以上字符是一个JSON对象,对象中有多个属性

 import net.sf.json.JSONObject;

         String moduleListStr = "上面的json字符串";
if(StringUtils.isEmpty(moduleListStr)){
return null;
}
List<String> moduleList = new ArrayList<String>();
Map<String,String> mapJson = JSONObject.fromObject(moduleListStr);
for(Map.Entry<String,String> entry : mapJson.entrySet()){
moduleList.add(entry.getValue());
}

上面的代码将Json对象转化成一个java Map,然后进一步操作

Json格式转换的更多相关文章

  1. json格式转换成Map的应用

    jsp 1.引用json.js(将json格式转换成字符串) 2. var name = document.getElementById("name").value; var re ...

  2. ajax-json&comma;遇到的一个问题,jquery var &comma;加载顺序。JS对象,json格式转换。

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. json格式转换(json&comma;csjon&rpar;(天气预报)

    json格式数据默认为string,可以使用eval()函数或者json模块将其转换为dict.标准Json字符串必须使用双引号(")而不能使用单引号('),否则从字符串转换成dict类型会 ...

  4. python 字符串str和json格式转换

    最近在写一个脚本,需要处理从excel中读取的数据,发现读取的json格式数据进行转换时报错 ValueError: Expecting property name enclosed in doubl ...

  5. &lpar;转&rpar;json格式转换成javaBean对象的方法

    把json格式转换成javaBean才可以.于是查了一下资料,网上最多的资料就是下面的这种方式: Java code? 1 2 3 4 5 6 7 8 9 String str = "[{\ ...

  6. python 使用json格式转换

    什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...

  7. JSON格式转换&lpar;javascript&rpar;

    使用ajax从后台抓取数据后,如果有多个值,可以使用json传值. ajax例子如下,在返回的类型里面,可以是文本型(text),JSON格式(json),超文本类型(html),XML文件类型(xm ...

  8. Idea中:No converter found for return value of type&colon; class java&period;util&period;ArrayList:Json格式转换问题

    1.在搞SSM框架的时候,前端发送请求后,显示如下错误. @ResponseBody注解进行返回List<对象>的json数据时出现 nested exception is java.la ...

  9. 网络传输中利用fastjson将复杂嵌套数据类型Json格式转换(GeoJsonPolygon)

    如果一个对象太复杂了,那么在网络传输键的JSON格式数据转换容易出问题. 比如下面一个类Area.java import lombok.AllArgsConstructor; import lombo ...

随机推荐

  1. 关于easyUI在子页面增加显示tabs的一个问题

    在父页面点个链接能动态看到子页面的情况太简单,请看easyUI官网:http://www.jeasyui.com/tutorial/layout/tabs2.php 现在说的是在子页面点个按钮也能触发 ...

  2. Java NIO缓冲

    缓冲区(buffer)是从即将写入通道(channel)或刚刚从通道中读出的一段数据.它是一个持有数据,并扮演NIO通道端点的对象.缓冲区为数据访问和读写过程提供正式机制. 它是NIO和老版Java ...

  3. stack 集合栈计算机 (摘)

    有一个专门为了集合运算而设计的“集合栈”计算机.该机器有一个初始为空的栈,并且支持以下操作:PUSH:空集“{}”入栈DUP:把当前栈顶元素复制一份后再入栈UNION:出栈两个集合,然后把两者的并集入 ...

  4. java实现简单的solr查询

    SolrQuery类是实现solr查询的类. @Test public void testSelect() { String url = "http://localhost:8081/sol ...

  5. STM32 USB-三个HID-interface 复合(组合)设备的代码实现-基于固件库(原创)

    一.概论: 在STM32_USB-FS-Device_Lib_V4.1.0的Custom_HID工程基础上进行修改: 开发一款设备,有三个HID接口,mouse+pen+自定义HID 其中:0_HID ...

  6. C语言解决约瑟夫问题详解的代码

    将开发过程中比较重要的一些内容做个收藏,下面的内容是关于C语言解决约瑟夫问题详解的内容,希望能对码农有帮助. #pragma once #include<vector> class PRO ...

  7. &period;net core 监听性能,异常

    https://www.cnblogs.com/laozhang-is-phi/p/10287023.html#autoid-2-2-0

  8. 【bfs】迷宫问题

    [题目描述] 定义一个二维数组: int maze[5][5] = { 0,1,0,0,0, 0,1,0,1,0, 0,0,0,0,0, 0,1,1,1,0, 0,0,0,1,0, }; 它表示一个迷 ...

  9. vue和jQuery嵌套实现异步ajax通信

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  10. 配置自己的Maven方式并使用Maven 运行项目Idea的maven的项目

    (1) 当安装了 maven之后,需要导入项目代码,然后编译执行: 打开Idea ==>然后点击小扳手==>在搜索框中输入maven==>然后找到 Maven home direct ...