Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GSON 多层Map剥离

GSON 多层Map剥离

作者头像
netkiller old
发布于 2018-03-05 08:04:27
发布于 2018-03-05 08:04:27
1.8K00
代码可运行
举报
文章被收录于专栏:NetkillerNetkiller
运行总次数:0
代码可运行

工作中遇到一个问题,我们提供给外包方的 json 无法Decode 。

一段简单 JSON 字符串,字符串如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String json= "{\"0\":{\"id\":\"2\",\"category_id\":\"1\",\"title\":\"Test2\",\"author\":\"\",\"ctime\":\"2016-03-05 11:59:56\"},\"1\":{\"id\":\"1\",\"category_id\":\"1\",\"title\":\"Test1\",\"author\":\"\u6d4b\u8bd5\",\"ctime\":\"2016-03-05 11:57:30\"},\"pages\":{\"count\":2,\"first\":0,\"last\":0,\"before\":0,\"current\":0,\"next\":0,\"total\":0}}";

对方话费了大量时间解决不了问题。后来说请了 “新浪” 高手过来(让我想到周星驰电影,他们请来大内高手高手高高手)。看后也无能为力,说我们JSON 字符串不符合JSON标准规范。

我无语!啥也不说了,帮你们写一个例子吧。

12.2. com.google.gson

https://github.com/google/gson

首先看看怎么剥离一层Map

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
		<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>sender</groupId>
	<artifactId>sender</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>Sender</name>
	<description>EDM</description>

	<dependencies>
		<dependency>
			<groupId>com.rabbitmq</groupId>
			<artifactId>amqp-client</artifactId>
			<version>3.6.0</version>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.6.2</version>
			<scope>compile</scope>
		</dependency>
	</dependencies>

</project>		
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
		package io.github.netkiller;

import java.util.HashMap;
import java.util.Map;

import com.google.gson.*;

public class GsonTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Gson gson = new Gson();
		String json = "{\"k1\":\"v1\",\"k2\":\"v2\"}";
		Map<String, String> map = new HashMap<String, String>();
		map = (Map<String, String>) gson.fromJson(json, map.getClass());
		System.out.println(map.get("k1"));
	}

}		

12.2.1. 多层 Map 剥离

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
		Gson gson = new Gson();
		String json= "{\"0\":{\"id\":\"2\",\"category_id\":\"1\",\"title\":\"Test2\",\"author\":\"\",\"ctime\":\"2016-03-05 11:59:56\"},\"1\":{\"id\":\"1\",\"category_id\":\"1\",\"title\":\"Test1\",\"author\":\"\u6d4b\u8bd5\",\"ctime\":\"2016-03-05 11:57:30\"},\"pages\":{\"count\":2,\"first\":0,\"last\":0,\"before\":0,\"current\":0,\"next\":0,\"total\":0}}";
		Map<String, Map> map = new HashMap<String, Map>();
		
		map = (Map<String, Map>) gson.fromJson(json, map.getClass());
		System.out.println(map.get("1").get("title"));
		System.out.println(map.get("pages").get("count"));			

以上例子节选自 《Netkiller Java 手札》

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Netkiller 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
论文简述 | 无需校正和不失真的实时变化的鱼眼双目
广角摄像头拍摄的稠密3D地图有利于导航和自动驾驶等机器人应用.在这项工作中,我们提出了一种实时稠密三维鱼眼相机建图方法,无需显式校正和不失真.我们扩展了传统的变分立体方法,通过使用由摄像机运动引起的轨迹场来约束沿外极曲线的对应搜索.与传统的校正方法相比,我们还提出了一种在不增加处理时间的情况下生成轨迹场的快速方法.通过我们的实现,我们能够使用现代图形处理器实现实时处理.我们的结果显示了我们的非校正稠密建图方法相对于校正变分方法和非校正离散立体匹配方法的优势.
3D视觉工坊
2020/11/19
1.1K0
论文简述 | 无需校正和不失真的实时变化的鱼眼双目
鱼眼摄像头畸变校正方法概述
文章:A COMPREHENSIVE OVERVIEW OF FISH-EYE CAMERA DISTORTION CORRECTION METHODS
点云PCL博主
2024/01/17
7720
鱼眼摄像头畸变校正方法概述
干货 | 鱼眼镜头模型和校正方法详解
相机镜头大致上可以分为变焦镜头和定焦镜头两种。顾名思义,变焦镜头可以在一定范围内变换焦距,随之得到不同大小的视野;而定焦镜头只有一个固定的焦距,视野大小是固定的。鱼眼镜头是定焦镜头中的一种视野范围较大的镜头,视角通常大于180°。如下图所示,在获取更大视野范围的同时,鱼眼镜头成像的畸形变也更大。
Color Space
2024/06/19
1.7K0
干货 | 鱼眼镜头模型和校正方法详解
iPhone 摄影中的深度捕捉 ( WWDC2017-Session 507 ) 下篇
张耀琦
2017/09/20
3.6K0
iPhone 摄影中的深度捕捉 ( WWDC2017-Session 507 ) 下篇
鱼眼摄像机及鱼眼畸变矫正(挖坑)
鱼眼摄像机即是搭配了鱼眼镜头的摄像机,鱼眼镜头是一种超广角的特殊镜头,其构造仿照鱼类眼睛成像,是可以独立实现大范围无死角监控的摄像机。我们知道鱼类眼睛与人眼构造类似,但是其水晶体为圆球形,人眼为扁圆形,鱼类虽然只能看到较近处的物体,但是却拥有了更广阔的视角,其视角甚至可达180°;具备同样特性的鱼眼摄像机通过吸顶安装,可视范围可达到360°,可监控大范围场景中的所有物体,所以也被称为全景摄像机。
AomanHao
2022/01/14
3.8K0
鱼眼摄像机及鱼眼畸变矫正(挖坑)
工业镜头和民用镜头的区别在哪里?
光学镜头一般称为摄像镜头或摄影镜头,简称镜头,其功能就是光学成像。镜头是机器视觉系统中的重要组件,对成像质量有着关键性的作用,它对成像质量的几个最主要指标都有影响,包括:分辨率、对比度、景深及各种像差。镜头不仅种类繁多,而且质量差异也非常大,但一般用户在进行系统设计时往往对镜头的选择重视不够,导致不能得到理想的图像,甚至导致系统开发失败。
小白学视觉
2020/03/24
1.3K0
工业镜头和民用镜头的区别在哪里?
机器视觉(第3期)----图像采集之镜头原理详述
上期我们一起学习了光源相关的知识,知道了怎么选择光源,链接如下: 机器视觉(第2期)----图像采集之照明综述 镜头是一种光学设备,用于聚集光线在摄像机内部成像。镜头的作用是产生锐利的图像,以得到被测物的细节,这一期我们将一起学习使用不同镜头产生不同的成像几何,以及镜头像差是如何产生的。希望通过本期学习,我们能够掌握如何选择镜头以及像差产生的原因。 作为一个机器视觉算法人员,来介绍光学系统方面的知识,有些地方理解起来还是有些难度的,小编已经再旁边放了几摞砖,欢迎大家来拍。希望能够和大家一起交流,共同进步。
智能算法
2018/04/03
3.3K0
机器视觉(第3期)----图像采集之镜头原理详述
利用人工智能提升足球直播效果
人工智能技术代表着未来无限的可能性,已经在很多领域带来巨大的冲击。在足球直播这一领域,版权方需要提供更多更优质的内容以应对日益增长的多元化需求,因此急需提高运营效率的新方式。
用户1324186
2018/10/25
3K2
利用人工智能提升足球直播效果
手机中的计算摄影4-超广角畸变校正
广角镜头,甚至超广角镜头已经成为了现在手机的标配,这样的手机能够拍摄出宽广的视角,还能够在合拍时拍下更多的人物。
HawkWang
2021/12/01
2.1K0
手机中的计算摄影4-超广角畸变校正
全景视频拼接关键技术
图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术,它将多幅图像拼接成一幅大尺度图像或360度全景图,图像拼接技术涉及到计算机视觉、计算机图形学、数字图像处理以及一些数学工具等技术。图像拼接其基本步骤主要包括以下几个方面:摄相机的标定、传感器图像畸变校正、图像的投影变换、匹配点选取、全景图像拼接(融合),以及亮度与颜色的均衡处理等,以下对各个步骤进行分析。
全栈程序员站长
2022/07/31
1.8K0
全景视频拼接关键技术
一分钟详解鱼眼镜头标定基本原理及实现
在VSLAM中,经常会使用鱼眼镜头或者广角镜头。本文主要分为理论部分与鱼眼镜头标定实践两部分,其中理论部分,主要参考《A generic camera model and calibration method for conventional, wide-angle, and fish-eye lenses》,作者为Juho Kannala和Sami S. Brandt,写于2006年,同时这篇文章的作者在2004年也写了一篇与鱼眼镜头标定相关的论文《A Generic Camera Calibration Method for Fish-Eye Lenses》,同样值得参考。
计算机视觉
2020/11/11
2.8K0
一分钟详解鱼眼镜头标定基本原理及实现
单目全向立体相机的标定(一种新的相机形式)
文章:Calibration Method of the Monocular Omnidirectional Stereo Camera
点云PCL博主
2022/01/27
7820
单目全向立体相机的标定(一种新的相机形式)
Google Pixel 2(XL)录像画质提升背后
目前智能手机最重要的一个方面就是轻松捕捉和分享视频。基于光学图像稳定(OIS)和电子图像稳定(EIS))的融合稳定视频技术,使用Pixel 2 和Pixel 2 XL智能手机,拍摄的视频比以往更流畅,更清晰。视频融合稳定技术用最少的伪影提供高度稳定的画面,目前Pixel 2在DxO的视频排名中领先(同时也获得了智能手机相机的最高综合评分)。
LiveVideoStack
2021/09/02
9270
Google Pixel 2(XL)录像画质提升背后
综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍
文章:Surround-view Fisheye Camera Perception for Automated Driving: Overview, Survey & Challenges
点云PCL博主
2022/09/13
4.4K0
综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍
机器视觉工业缺陷检测(光源,相机,镜头,算法)
视觉工业检测大体分为工件尺寸测量与定位,和表面缺陷检测,及各种Logo标识的检测与识别等。
机器学习AI算法工程
2021/10/14
18.5K0
机器视觉工业缺陷检测(光源,相机,镜头,算法)
GoPro 镜头失真消除
GoPro 使用的鱼眼镜头提供了广阔的视野,但它也会扭曲图像。在这个项目中,我们将通过使用 Python 和 OpenCV 校准相机来消除失真。
云深无际
2021/07/23
1.7K0
GoPro 镜头失真消除
NAB SHOW 2018进行时丨迪士尼/ABC推出稳定器DigiBoom,AMBEO智能耳机令人瞩目
正文共:2364 字 7 图 预计阅读时间: 6 分钟 今日,是NAB SHOW 2018最后一天,展会依然在如火如荼的进行中。过去几天里,我们已经看到了许多AR/VR、AI以及相机方面精彩的技术和产
VRPinea
2018/05/18
7260
360度相机大盘点,这个假期带着全景相机去旅行吧!
360度全景相机的出现给人们的生活带来了无限的可能。小巧的装置却可以拍摄出沉浸感十足的互动式视频内容。目前市面上已经有了数十种全景相机,小编在此就对目前比较知名的360度相机进行一次盘点。 诺基亚OZ
VRPinea
2018/05/14
1.3K0
镜头畸变校正
之前介绍了镜头畸变,本文记录校正畸变的模型和方法。 背景 对于常见的镜头径向畸变和切向畸变,在硬件已经无法继续优化时,需要后处理进行校正 模型 一些针孔摄像机会对图像产生严重的畸变,主要有两种畸变: 径向畸变和切向畸变。 径向畸变 径向畸变导致直线看起来弯曲。点距图像中心越远,径向畸变越大。例如,下图显示了一个棋盘的两个边缘用红线标记的图像。但是,你可以看到棋盘的边界不是一条直线,与红线不匹配。所有预期的直线都凸出。 径向畸变可以表示为以下模型 切向畸变 类似地,切向畸变发生是因为摄像透
为为为什么
2022/11/24
2.1K0
镜头畸变校正
视场角(FOV)
在摄影学中,视角(angle of view)是在一般环境中,相机可以接收影像的角度范围,也可以常被称为视野。视角(angle of view)与成像范围(angle of coverage)是不同的,他是描述镜头可以撷取的影像角度,一般来说镜头的成像圈都够大到涵盖底片或者感光元件(或许会有一点点的边缘暗角)。假如镜头的成像范围无法涵盖整个感光元件,则成像圈会被看见,一般会伴随严重的边缘暗角,在这个状态下,视角会被成像范围所限制。
云深无际
2021/04/14
4.7K0
视场角(FOV)
推荐阅读
相关推荐
论文简述 | 无需校正和不失真的实时变化的鱼眼双目
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验