文档章节

JAVA 读/写 Json文件

javaART
 javaART
发布于 2017/06/17 00:37
字数 413
阅读 326
收藏 0

(一)Json的优缺点

  1. 优点:作为一种数据传输格式,JSON 与 XML 很相似,但是它更加灵巧;JSON不需要从服务器端发送含 有特定内容类型的首部信息。
  2. 缺点:语法过于严谨;代码不易读;eval 函数存在风险。

(二)JSON文件

{  
    "type": "FeatureCollection",  
    "features": [{  
        "type": "Feature",  
        "properties": {  
            "name": "Yuen Long",  
            "ID_0": 102,  
            "ID_1": 18,  
            "ISO": "HKG"  
        },  
        "geometry": {  
            "type": "Polygon", 
            "coordinates": [[
                            [114.084511, 22.519991], 
                            [114.075668, 22.517466], 
                            [114.078194, 22.516203], 
                            [114.079460, 22.516623], 
                            [114.082825, 22.519150],
                            [114.084511, 22.519991]
                           ]]  
        }  
    }]  
}  

(二) 读写Json文件的数据

package json;  
  
import java.io.BufferedReader;  
import java.io.BufferedWriter;  
import java.io.FileReader;  
import java.io.FileWriter;  
import java.io.IOException;  
import java.util.ArrayList;  
import org.json.JSONException;  
import org.json.JSONObject;  
import org.json.JSONArray;  
  
public class JsonConvert {  
  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  

        // 读取nameID.txt文件中的NAMEID字段(key)对应值(value)并存储  
        ArrayList<String> list = new ArrayList<String>();  
        BufferedReader brname;  

        try {  
            brname = new BufferedReader(new FileReader("src/json/nameID.txt"));// 读取NAMEID对应值  
            String sname = null;  
            while ((sname = brname.readLine()) != null) {  
                // System.out.println(sname);  
                list.add(sname);// 将对应value添加到链表存储  
            }  
            brname.close();  
        } catch (IOException e1) {  
            // TODO Auto-generated catch block  
            e1.printStackTrace();  
        }  

        // 读取原始json文件并进行操作和输出  
        try {  

            BufferedReader br = new BufferedReader(new FileReader(  
                    "src/json/HK_geo.json"));// 读取原始json文件  
            BufferedWriter bw = new BufferedWriter(new FileWriter(  
                    "src/json/HK_new.json"));// 输出新的json文件  

            String s = null, ws = null;  
            while ((s = br.readLine()) != null) {  
                // System.out.println(s);  
                try {  
                    JSONObject dataJson = new JSONObject(s);// 创建一个包含原始json串的json对象  
                    JSONArray features = dataJson.getJSONArray("features");// 找到features的json数组  

                    for (int i = 0; i < features.length(); i++) {  
                        JSONObject info = features.getJSONObject(i);// 获取features数组的第i个json对象  
                        JSONObject properties = info.getJSONObject("properties");// 找到properties的                         json对象  
                        String name = properties.getString("name");// 读取properties对象里的name字段值  
                        System.out.println(name);  

                        properties.put("NAMEID", list.get(i));// 添加NAMEID字段  
                        // properties.append("name", list.get(i));  
                        System.out.println(properties.getString("NAMEID"));  

                        properties.remove("ISO");// 删除ISO字段  
                    }  

                    ws = dataJson.toString();  
                    System.out.println(ws);  

                } catch (JSONException e) {
                    e.printStackTrace();  
                }  
            }  
  
            bw.write(ws);  
            bw.newLine();  
            bw.flush();  
            br.close();  
            bw.close();  
  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
  
    }  
  
}  

 

本文转载自:http://www.cnblogs.com/runerering/p/6037751.html

javaART
粉丝 1
博文 36
码字总数 12872
作品 0
昆明
后端工程师
私信 提问
有效选择七个关于 Java 的 JSON 开源类库

有效选择七个关于Java的JSON开源类库 April 4, 2014 By Constantin Marian Alin 翻译:无若 (英语原文:http://www.developer.com/lang/jscript/top-7-open-source-json-binding-providers-......

溪边九节
2014/04/19
12.9K
14
有效选择七个关于Java的JSON开源类库

April 4, 2014 By Constantin Marian Alin 翻译:无若 (英语原文:http://www.developer.com/lang/jscript/top-7-open-source-json-binding-providers-available-today.html) 简介 JSON是J......

无若
2014/04/19
6K
1
Python学习记录-----批量发送post请求

昨天学了一天的Python(我的生产语言是java,也可以写一些shell脚本,算有一点点基础),今天有一个应用场景,就正好练手了。 这个功能之前再java里写过,比较粗糙,原来是在我本机跑的,今天...

左眼神威
2017/05/11
0
0
英国卫报 (Guardian.co.uk) 从 Java 切换到 Scala

用卫报(guardian.co.uk)编辑的话说,这家报纸拥有世界上第二大的读者群,仅次于纽约时报;而它的开发团队正在逐渐从Java迁移到Scala。迁移工作是从Content API开始的,使用这套API可以查找...

ValueError
2012/02/18
2.5K
24
Java Web技术经验总结(六)

synchronized的作用和原理:link 使用经验:synchronized是一种互斥锁。在Java开发中,当某个变量需要在多个线程之间共享时,需要分析具体的场景:如果多个线程对该共享变量的读和写之间没有...

杜琪
2016/06/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue warn]: Computed property "activeNames" was assigned to but it has no setter.

在使用 vue,element-ui时,如下代码 <template> <el-form :model="numberValidateForm" ref="numberValidateForm"> <el-form-item> <el-tabs v-model="activeNames" @tab-cl......

牧云橙
35分钟前
6
0
重构-改善既有代码的设计-6.2内联函数

6.2内联函数 动机 本书经常以简短的函数表现动作意图,这样会使代码更清晰易读。但有时候你会遇到某些函数,其内部代码和函数名称同样清晰易读。也可能你充够了该函数的内部实现,使其内容和...

还仙
36分钟前
6
0
Less 混入

混合类似于编程语言中的函数。 Mixins 是一组CSS属性,允许我们将一个类的属性嵌套于另一个类,被嵌入的类可以看作是变量,并且包含类名作为其属性,也就是说我们可以用一个类定义样式然后把...

凌兮洛
38分钟前
6
0
频繁FGC的真凶原来是它

频繁FGC的真凶原来是它 上周排查了一个线上问题,主要现象是CPU占用过高,jvm old区占用过高,同时频繁fgc,我简单排查了下就草草收场了,但是过后我对这个问题又进行了复查,发现问题没有那...

每天晒白牙
39分钟前
6
0
简单的树形菜单如何写

业务需求 数据结构中含有图片、名称、children的树形结构,需要展示出每一级的图片名称和图片,找了些树形图的插件,都没有展示大的图片的,一般都是小图标,就自己试着写一个包含图的简单的...

tianyawhl
40分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部