JSON字符串解析成key-value获取键值对的值

2023-11-02

最近在做日志解析这块,记录一下

转为map,循环得到key,value

{
	"dt": "VENUS_TDS_V0700R0200B20150601",
	"level": 30,
	"id": "152321043",
	"type": "Alert Log",
	"time": 1467958351859,
	"source": {
		"ip": "172.20.0.6",
		"port": 0,
		"mac": "00-06-f6-87-c5-c0"
	},
	"destination": {
		"ip": "0.0.0.0",
		"port": 0,
		"mac": "00-06-f6-87-c5-c0"
	},
	"protocol": "ICMP",
	"subject": "SCAN_ICMP扫描探测",
	"message": "nic=0; ICMP scan rate, (scaned host num, sec):(11, 1)"
}
 Map maps = (Map) JSON.parse(str);
        System.out.println("这个是用JSON类来解析JSON字符串!!!");
        for (Object map : maps.entrySet()) {
            System.out.println(((Map.Entry) map).getKey() + "     " + ((Map.Entry) map).getValue());
        }

2,根节点为”[]”的json

[{
	"id": 1,
	"name": "china",
	"age": 18,
	"num": 123456
}, {
	"id": 2,
	"name": "hongkong",
	"age": 2,
	"num": 9527
}]
 JSONArray jsonArray=new JSONArray(json);
        for(int i=0;i<jsonArray.length();i++){
            JSONObject jsonObject=jsonArray.getJSONObject(i);
            //通过key获取value
             String name = jsonObject.getString("name");
             int id = jsonObject.getInt("id");
             int age = jsonObject.getInt("age");
             int num = jsonObject.getInt("num");
            //分割线------------------------
            //直接获取key-value
            Iterator<String> it = jsonObject.keys();
            while(it.hasNext()){
                String key = it.next();
                Object value = jsonObject.get(key)+"";
                System.out.println(key+"   :    "+value);
            }
        }

如果要获取有序的Map,使用这个方法:

Map<String, Object> dummyMap =  JSON.parseObject(str,LinkedHashMap.class, Feature.OrderedField);//关键的地方,转化为有序map

此条代码链接来源:
https://blog.csdn.net/Jason_K0/article/details/88093478

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON字符串解析成key-value获取键值对的值 的相关文章

  • Vue2.0选中当前鼠标移入移除加样式

    本人写的小程序 功能还在完善中 欢迎扫一扫提出宝贵意见 效果如gif动态图所示 1 通过v for遍历数组 HTML代码 1
  • 基于亚博K210开发板——串口中断以及开启双核任务

    文章目录 开发板 实验目的 实验准备 硬件原理图 软件对应SDK 对应的头文件 uart h uart h接口函数 高速通用异步收发传输器 UARTHS 对应的头文件 uarths h uarths h接口函数 板级对应的头文件 bsp h
  • C++之xlsx文件操作之写操作

    采用xlsxwriter开源库的实现 声明如下 include xlsxwriter include xmlwriter h include xlsxwriter include workbook h include xlsxwriter
  • 微信小程序 返回上一页面时实现上一页面刷新

    假如从页面B返回页面A时实现页面A刷新 页面B var pages getCurrentPages 当前页面栈 if pages length gt 1 var beforePage pages pages length 2 获取上一个页面
  • vite+electron构建桌面版应用教程超简单

    目录 概述 快速开始 目录结构 Electron Vite Vue 整合模板 结构简单 容易上手 概述 开箱即用 支持 C C 模块 支持在渲染进程中使用 Electron Node js API 结构清晰 可塑性强 很容易实现多窗口 快速
  • Java assert断言

    格式 assert 返回boolean的语句 方法 如果boolean为true 程序继续执行 否则抛出AssertionError 继承于Error而非Exception 表达系统级运行错误 终止程序 因此assert可以定位bug as
  • MySql学习笔记——负载均衡(二十三)

    load balance 当存在多台服务器提供一个任务时 需要从其中选择一台用来完成当前任务 选择的算法就是负载均衡 在mysql中往往会采用一写多读架构 因为一般读操作往往多余写操作 还有就是写操作的同步是个问题 一写多读中 读服务器需要
  • CP343-1 扩展ProfibusCPU 314C-2DP

    1 MPI编程电缆连接PLC 设置接口为PC Adapter MPI 1 如下图所示 2 硬件组态插入组态 建立ethernet 网络 编译后下载 3 CP343 1安装上后 CPU run不起来 组态更新后即可 转载于 https www
  • [OVD]Open-Vocabulary Object Detection Using Captions(CVPR. 2021 oral)

    1 Motivation Despite the remarkable accuracy of deep neural networks in object detection they are costly to train and sc
  • Llama2-Chinese项目:1-项目介绍和模型推理

    Atom 7B与Llama2间的关系 Atom 7B是基于Llama2进行中文预训练的开源大模型 为什么叫原子呢 因为原子生万物 Llama中文社区希望原子大模型未来可以成为构建AI世界的基础单位 目前社区发布了6个模型 如下所示 Flag
  • JS声明对象key为变量

    JS声明对象key为变量 给对象的键加方括号即可 如下 const roomName room roomName const roomDetail roomName roomDescription
  • 伪类和伪元素的区别是什么?

    一 两者的定义 1 伪类 pseudo class 是一个以冒号作为前缀 被添加到一个选择器末尾的关键字 当你希望样式在特定状态才被呈现到指定的元素时 你可以往元素的选择器后面加上对应的伪类 2 伪元素用于创建一些不在文档树中的元素 并为其
  • 【洛谷 P1093】[NOIP2007 普及组] 奖学金 题解(结构体排序)

    NOIP2007 普及组 奖学金 题目描述 某小学最近得到了一笔赞助 打算拿出其中一部分为学习成绩优秀的前 5 5 5 名学生发奖学金 期末 每个学生都有 3 3 3 门课的成绩 语文 数学 英语 先按总分从高到低排序 如果两个同学总分相同
  • 数组转换字符串

    一 数组转字符串 3种方法 toString toLocaleString join join JS 允许数组与字符串之间相互转换 其中 Array 方法对象定义了 3 个方法 如下 数组方法 说明 toString 将数组转换成一个字符串

随机推荐

  • Android 检测 手机硬件状态 的Utils

    package com cy tools import android annotation SuppressLint import android app Activity import android bluetooth Bluetoo
  • Github中如何给项目创建GitHub Pages官方网页

    实现效果图 我的项目是 https github com shunyue1320 uab ui 我需要给项目创建一个官方文档的网页如 https shunyue1320 github io uab ui 看着Github大项目都有一个高大上
  • 【网络代理】代理IP检测的知识

    做网络的基本都知道代理 这个是肯定的 不管是用花刺还是猎手的网页代理 还是直接VPN的通道代理 代理有着不用说大家也知道的重要性 不管是做CPA还是做点击亦或者投票 代理都能帮我们一下 虽然帮的忙不大 但是却很重要 下面风就网页代理而言 探
  • tkinter模块

    thinker模块 第一个thinker程序 导入thinker模块 import tkinter 创建Tk类的实例 本质是显示窗口 window tkinter Tk 设置窗口背景为蓝色 window background blue 设置
  • 从零搭建个人网站服务器

    准备前提 服务器 以阿里云的轻量应用服务器为列 已经开发好的网站 服务器简介 内存 2G CPU 2核 系统盘 60G 系统镜像 CentOs 已经预安装了PHP 与 Mysql 环境安装 1 node环境搭建 如果后端使用的是 node
  • 百问网7天物联网智能家居 学习心得 打卡第六天

    2022 3 26 因为上班赶工没有多少时间观看视频 加上自己基础很差在串口那边讲得又比较快速 反复看了很久才发打卡第六天 主要讲的内容是 程序框架和代码实现 在usart c 创建函数ESP8266 SendCommand 向ESP826
  • Kalman滤波器从原理到实现

    转载请注明出处 http xiahouzuoxin github io notes Kalman滤波器的历史渊源 We are like dwarfs on the shoulders of giants by whose grace we
  • git 操作命令

    git初始化仓库 git init 配置用户名和邮箱 git config global user name name git config global user email email 将代码储存到 git仓库中 将代码放入暂存区 gi
  • java运行bat命令得到某个windows文件的创建时间

    原文 java运行bat命令得到某个windows文件的创建时间 代码下载地址 http www zuidaima com share 1550463260150784 htm package com zuidaima util impor
  • java每日代码练习——成绩分层代码

    利用条件运算符的嵌套来完成此题 学习成绩 gt 90分的同学用A表示 60 89分之间的用B表示 60分以下的用C表示 代码如下 import java util Scanner public class zhimingyangtuo pu
  • [机器学习与scikit-learn-21]:算法-逻辑回归-多项式非线性回归PolynomialFeatures与代码实现

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 123447272 目录 第1章 sci
  • docker.service启动失败:Unit not found的原因及解决办法

    解决办法 删除 usr lib systemd system docker service的 UNIT 里包含的docker socket 然后systemctl daemon reload 最后systemctl start docker
  • 列表解析

    gt gt gt squared x 2 for x in range 4 gt gt gt for i in squared print i 0 1 4 9 gt gt gt sqdEvens x 2 for x in range 8 i
  • 【Vue.js】全局与局部自定义指令的区别

    示例中介绍了全局自定义指令与局部自定义指令的区别 全局自定义指令 可以在任何实例中应用 局部自定义指令 只能在本身的vue实例中应用 div p 局部自定义指令 p div
  • Windows下JDK安装与环境变量配置

    文章目录 每日一句正能量 前言 安装步骤 配置环境变量 验证环境变量是否配置成功 后记 每日一句正能量 生命 就像一场永无休止的苦役 不要惧怕和拒绝困苦 超越困苦 就是生活的强者 任何经历都是一种累积 累积的越多 人就越成熟 经历的越多 生
  • Java 开发工具类Pager

    import java util ArrayList import java util List 分页工具类 author user public class Pager private static final int DEFAULT P
  • IC卡16个扇区简介

    IC卡 Integrated Circuit Card 集成电路卡 也称智能卡 Smart card 智慧卡 Intelligent card 微电路卡 Microcircuit card 或微芯片卡等 它是将一个微电子芯片嵌入符合ISO
  • 【动态规划】62. 不同路径

    62 不同路径 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 问总共有多少条不同的路径 示例 1 输入 m 3
  • Prism 框架

    Prism 框架应用 基础知识篇 Prism 框架概念 prism was the code name for the guidance formally known as the Composite Application Guidanc
  • JSON字符串解析成key-value获取键值对的值

    最近在做日志解析这块 记录一下 转为map 循环得到key value dt VENUS TDS V0700R0200B20150601 level 30 id 152321043 type Alert Log time 146795835