jsonobject

从零开始,构建电子地图网站:0_10_try-catch+配置log日志

江枫思渺然 提交于 2020-03-10 00:26:51
接上篇,给程序加上注释、try-catch、log日志等。 注释非常简单。 在接口方法上输入/**,按下回车,该写什么就写什么吧。 Try-catch 在觉得会出问题的地方,加上try-catch,try没成功,就会catch异常,将异常log出来,用以排查问题。 我把注释、try-catch、log都加在了controller上。 一、新建日志配置文件 在resource下新建logback-boot.xml文件。 D:\gismap\java\gismap\src\main\resources\logback-boot.xml 别的都使用默认的就好,注意logger name="com.history.gismap",配置成自己的包名。 <configuration> <!-- %m 输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】,,, --> <!-- appender是configuration的子节点,是负责写日志的组件。 --> <!-- ConsoleAppender:把日志输出到控制台 --> <appender name ="STDOUT" class ="ch.qos.logback.core.ConsoleAppender" > <encoder> <pattern> %d %p (%file:%line\)- %m

从零开始,构建电子地图网站:0_11_引用geojson

被刻印的时光 ゝ 提交于 2020-03-10 00:15:40
在上篇中,我在MapController类中新建了一个方法JSONObject geometryToJson(Geometry geometry),用以将geometry对象转为json。 这个方法有点问题,首先,point是一个点,只有一组坐标,polygon如果有孔洞,怎么表示?multipolygon都是多部件还好,要是有带孔洞的polygon怎么办?polyline怎么表示? 而且我在这个方法里新建了太多对象JSONObejct、JSONArray等,最后也没有回收,会造成一些JVM性能问题。 综上,没事儿别自己瞎造轮子,自己瞎造的轮子,有可能掉到沟里。 Geojson这种数据格式,是有标准规范的,参见,https://www.oschina.net/translate/geojson-spec?cmp 也有一个专用的jar包将wkt等格式的数据转为geojson。 我们就用这个现成的gt-geojson来进行geojson的生成。 一、引入jar包 D:\gismap\java\master\gismap\pom.xml Maven依赖: <dependency> <groupId> org.geotools </groupId> <artifactId> gt-geojson </artifactId> <version> 9.3 </version> <

Java的JSON文件解析

流过昼夜 提交于 2020-03-09 21:55:28
1. JSON格式概述 JSON  JavaScript  JavaScript Object Notation  (JavaScript Object Notation,JavaScript对象表示法,读作/ˈdʒeɪsən/)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。 { { "firstName": "John", "lastName": "Smith", "sex": "male", "age": 25, "married": false, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } 2. 数据格式 2.1 JSON对象 { “ID”:001, “name”:“骚磊”,

从零开始,构建电子地图网站:0_14_springboot跨域+vue+axios网络请求

别来无恙 提交于 2020-03-09 21:49:12
我们的程序是前后端分离的。 后端是springboot,在IDEA中启动GismapApplication.java,访问 http://localhost:8080/history/geometry?category=prefpgn&start=-5000&end=-221 ,就能看到数据了。 前端是vue,cmd到vue-gismap下,npm run dev,访问 http://localhost:8090/#/specialmap ,就能看到页面了。 但是后端和前端的ip和port一样,不能在同一台主机中启动,所以要把前后端的端口号port设置成不同的,才能联调。 一、设置端口号 修改后端端口号 Springboot修改端口号; D:\gismap\java\master\gismap\src\main\resources\application.yml 修改port即可,我把端口号由之前的8080,修改为了8081。 server : port : 8081 # 数据库配置 spring : datasource : #alibaba 数据连接池 type : com . alibaba . druid . pool . DruidDataSource #postgresql 驱动 driverClassName : org . postgresql . Driver #

1. 通过apache common封装好的HttpClient

大城市里の小女人 提交于 2020-03-09 13:16:29
httpClient的get或post请求方式步骤: 生成一个HttpClient对象并设置相应的参数; 生成一个GetMethod对象或PostMethod并设置响应的参数; 用HttpClient生成的对象来执行GetMethod生成的Get方法; 处理响应状态码; 若响应正常,处理HTTP响应内容; 释放连接。 导入如下jar包:     <!--HttpClient--> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency>代码如下: import com.alibaba.fastjson.JSONObject; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import java.io

JSONObject.fromObject() Maven依赖

半世苍凉 提交于 2020-03-09 09:42:26
最近使用 JSONObject.fromObject(jsonAStr)这个方法转换对象 必须引用的包为net.sf.json.JSONObject,而引用包的过程中很容易出错,在此贴一下jar包依赖。 注意:最关键的net.sf.json-lib这个依赖里面必须是jdk15,具体原因目前不清楚,先用着吧,回头仔细研究。 <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>commons-logging</groupId>

EasyJson,更优雅地处理和解析JSON

五迷三道 提交于 2020-03-08 09:54:27
目录 EasyJson 类结构 如何使用ESONObject? 示例代码 示例代码输出 如何使用ESONArray? 示例代码 示例代码输出 其他 EasyJson 很容易处理JSONObject&JSONArray的工具。 使用了大概200行的代码,对原JSONObject进行简单封装,使用反射和泛型实现String->ESONObect的转换。 类结构 ESON 提供JSONObject与JSONArray相关的静态方法处理类 ESONObject extends JSONObject ; ESONArray extends JSONArray ; 详见源码:https : / / github . com / isong0623 / EasyJson 如何使用ESONObject? //build.gradle dependencies { ... api "com.github.isong0623:EasyJson:1.0-support" ... } 示例代码 //generate a json object 生成json对象 String strJson = "{\"a\":[\"1\",\"2\"],\"b\":{\"a\":\"0\"},\"int\":2,\"string\":\"str\",\"long\":12345665498765431,\"double\

基于 Spring + Mybatis 实现简单的 ElasticSearch 查询客户端

删除回忆录丶 提交于 2020-03-06 20:55:20
背景 在实际的 Java 项目开发中,比如 Spting Boot 应用,我们可能需要操作来自 ElasticSearch(后文简称 ES) 的数据,比如查询聚合等。同时,我们想要能够自定义DSL语句,满足复杂的查询需求。在目前的 ES Java 客户端 API 中 RestHighLevelClient 可以很好的实现,但是代码较为繁琐,而且不能满足 动 态 D S L \color{red}{动态 DSL} 动 态 D S L 的需求。因此,考虑基于Spring + Mybatis 实现简单的 ElasticSearch 查询客户端。 原理 Mybatis mapper 文件解析生成 DSL 语句 Spring RestTemplate 访问 Restful 服务 实现思路 熟悉 Mybatis 加载流程的都知道,Mybatis 会将所有的配置以及 SQL 语句初始化到 Configuration中。而且Spring 与 Mybatis 集成后会对 Mybatis 进行加载初始化。因此,可以将 DSL 语句以 SQL 的方式写到 mapper 文件中(以 xml 的的方式),利用 Mybatis 的 mapper 解析器生成相应的 DSL 语句字符串,还能利用 Mybatis 的标签完成动态 DSL 语句。 有了 DSL 语句后,我们就可以利用 Java 代码向 ES

O2OA教程-业务开发与设计-系统应用权限控制-外系统启动流程

限于喜欢 提交于 2020-03-06 16:40:55
第一步:单点登入 一、创建SSO配置,请参考组织管理里中的SSO管理 二、通过下面代码获取token. String token = "" ; //单点登入 String path = " http : //127.0.0.1:20020/x_organization_assemble_authentication/jaxrs/sso "; long time = new Date (). getTime (); String login_uid = "test" ; String sso_key = "12345678" ; String xtoken = null ; try { xtoken = Crypto . encrypt ( login_uid + "#" + time , sso_key ); System . out . println ( xtoken ); } catch ( Exception e1 ) { e1 . printStackTrace (); } String string = "{\"token\": " + xtoken + ", \"client\": \"unicom\"}" ; String str = HttpClientUtils . getInstance (). sendPost ( path , string ); try

关于web页面JApplet打印小票

时光总嘲笑我的痴心妄想 提交于 2020-03-03 11:56:15
版权所有 http://www.cnblogs.com/yzssoft/p/8991971.html 做这个的例子太少,我把我做的示例亮出来 一.先说说需要的版本   1.我用的浏览器只有ie:     火狐只支持52版本以下,并且是java7、java8。chrome不支持    2.applet客户端打印,需要java6:     亲自测试,java6需要一些提示是否运行,等都同意后,打印时不用再提示。          在java7、8,我自己测试控制面板里面没有低级,只有高级和超高级,不管什么时候打印,它都会提示是否同意     所以,我最终还是选择了在applet里放入jre6 二.applet的打印代码   1.html,在ie下才可运行   因为执行的时候,需要检查有没有jre6、请求/接受路径、一些传递的参数,运行的class、需要的jar,代码如下: function is_ie(json, print_type) { //){ //项目的根路径 var req_path = "http://localhost:8080"; //打印机名 var print_name = "Deli DL-888C"; var str = "JRPrinterApplet"; var archive = 'jbarcodebean-1.2.0.jar,json-20160810