精华内容
下载资源
问答
  • 开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。 2.说明 Java...

    1.介绍

    开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。

    2.说明

    Java语言操作json对象,需引入json数据操作库(org.json.jar)文件,可通过网络搜索寻找,另外本文附件代码中已包含,在Eclipse或其它编译工具中直接引入即可。

    pom 依赖:注意json-lib的属性有时需要加classifier属性,有时可以不用添加。

    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>                  //此处要加上jdk版本号
    </dependency>

    本文通过一个json文件(json.config)为例进行介绍,将key为confKey 的参数替换所其他值。json2.config为修改后的新文件。

    3.json样例

    [
      {  
        "business":"default",
        "confKey":"b",
        "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]]]  
            }  
        }]  
      },
      {  
        "business":"default",
        "confKey":"b",
        "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]]]  
            }  
        }]  
      }
        
    ]

    4、代码

    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    
    import java.io.*;
    
    public class JsonConvert {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
    
            // 读取原始json文件并进行操作和输出
            try {
                String s1 = readFileByLines("C:\\Users\\admin\\Desktop\\json.config");    // 读取配置文件
                String ws = null;
                BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\admin\\Desktop\\json2.config"));   // 输出配置文件
                JSONArray dataJson = JSONArray.fromObject(s1);
                for (int i = 0; i < dataJson.size(); i++) {
                    JSONObject properties = (JSONObject) dataJson.get(i);
                    properties.put("confKey","repalceParams");     //  需要替换的参数
                    ws = dataJson.toString();
                    System.out.println(ws);
                }
                bw.write(ws);
                bw.flush();
                bw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public static String readFileByLines(String fileName) {
            FileInputStream file = null;
            BufferedReader reader = null;
            InputStreamReader inputFileReader = null;
            String content = "";
            String tempString = null;
            try {
                file = new FileInputStream(fileName);
                inputFileReader = new InputStreamReader(file, "utf-8");
                reader = new BufferedReader(inputFileReader);
                // 一次读入一行,直到读入null为文件结束
                while ((tempString = reader.readLine()) != null) {
                    content += tempString;
                }
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException e1) {
                    }
                }
            }
            return content;
        }
    
    }

     

    展开全文
  • 要读写js文件,没找到在web...用java程序读写js文件: 使用的工具:json-lib 实例: 要修改的js文件内容: define(function(){return{ "coordinator":"协调器", "gateway":"网关", "route":"路由", "c

    要读写js文件,没找到在web端读写的方法,所以弄了个后台的,希望有web端读写的方法的同学告诉我一下,感激不尽!

    用java程序读写js文件:

    使用的工具:json-lib

    实例:


    要修改的js文件内容:
    define ( function (){ return {
    "coordinator" : " 协调器 " ,
    "gateway" : " 网关 " ,
    "route" : " 路由 " ,
    "config_param" :{//要修改这个键的值时, parentKey = "config_param"
    "add" : " 新增 " ,
    "edit" : " 编辑 " ,
    "del" : " 删除 "
    }
    }});

    代码:
    /**
    * 修改 js 文件
    * @param filePath
    * @param parentKey 要添加所在对象的键
    * @param key 要添加 / 更新的键
    * @param value 要添加 / 更新的键对应的值
    */
    public static void rwJS(String filePath,String parentKey,String key,Object value){
    try {
    // 第一步先读入 js 中所有的内容放到 String
    File file = new File(filePath);
    InputStream stream = new FileInputStream(file);
    InputStreamReader isreader = new InputStreamReader(stream);
    // new FileReader(new File(file))
    BufferedReader reader= new BufferedReader(isreader);
    StringBuilder sb= new StringBuilder();
    String line= null ;
    while ((line=reader.readLine())!= null ){
    // 把换行符去掉
    sb.append(line);
    }
    reader.close();
    String sub=sb.substring(sb.indexOf( "return" ),sb.lastIndexOf( "}" ));
    String jsonString=sub.substring(sub.indexOf( "{" ),sub.lastIndexOf( "}" )+ 1 );
    JSONObject jo= JSONObject. fromObject (jsonString);
    // 获得属性用 jo.get(String key);
    // 修改属性使用 jo.put(String key,Object value);
    //jo. element (String key,Object value);put和element修改的key如果已存在,则更新value,不存在,则添加key和value
    //jo.accumulate(String key,Object value);accumulate修改的key,会将新的value累加到对应key的值里
    //可 直接将这个 jo 输出到文件中
    JSONObject jsObj;
    if (parentKey != null ){
    Object obj = jo.get(parentKey);
    jsObj= JSONObject. fromObject (obj);
    // jsObj.element("7","78");
    jsObj.element(key,value);
    jo.element(parentKey,jsObj);
    } else {
    jo.element(key,value);
    }
    //组装文件内容
    StringBuilder builder = new StringBuilder();
    builder.append( "define(function(){return" );
    builder.append(jo.toString());
    builder.append( "});" );
    //将内容输出到文件
    FileWriter writer= new FileWriter(file);
    writer.write(builder.toString());
    writer.flush();
    writer.close();
    } catch (Exception e){
    e.printStackTrace();
    }
    }

    展开全文
  • Java maven项目中读取json资源文件

    千次阅读 2020-04-01 00:26:56
    springboot maven项目,想读取resources资源目录下自定义的configuration.json文件时,通过下面的代码在本机测试时可以读取 try{ //filename="configuration.json" URL url = JsonResourceUtils.class.getResource...

    应用场景


    springboot maven项目,想读取resources资源目录下自定义的configuration.json文件时,通过下面的代码在本机测试时可以读取

    try{	//filename="configuration.json"
        URL url = JsonResourceUtils.class.getResource(filename);
        String path = url.getPath();
    
        File file = new File(path);
        if (file.exists()){
            String content = FileUtils.readFileToString(file,"UTF-8");
            json = JSON.parseObject(content);
        }else{
            log.info("[{}] file not exist",filename);
        }
    }catch (Exception e){
        log.error("read file to string error",e);
    }
    

    但是打成Jar包的时候又没办法读取了,原因在ResourceUtils无法读取json文件中得以解决

    解决问题

    但是我想做一个通用的读取classpath中json文件的方法

    用到的包:

    • fastjson
    • slf4j

    Configuration.json内容

    {
      "resultCode":250,
      "tags": [
        "Java",
        "Cpp",
        "JS"
      ]
    }
    
    

    JsonResourceUtils.java

    package com.hong.utils;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    import lombok.extern.slf4j.Slf4j;
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.nio.charset.StandardCharsets;
    import java.util.List;
    
    @Slf4j
    public class JsonResourceUtils {
    
        public JsonResourceUtils() {
        }
    
    
        public static JSONObject getJsonObjFromConfiguration(){
            String FILENAME = "configuration.json";
            return getJsonObjFromResource(FILENAME);
        }
    
        public static JSONObject getJsonObjFromResource(String filename){
            JSONObject json = null;
    
            if (!filename.contains(".json")){
                filename += ".json";
            }
    
            try{
                InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
                if (inputStream != null){
                    StringBuilder sb = new StringBuilder();
                    InputStreamReader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
                    BufferedReader bfReader = new BufferedReader(reader);
                    String content = null;
                    while((content = bfReader.readLine()) != null){
                        sb.append(content);
                    }
                    bfReader.close();
                    json = JSON.parseObject(sb.toString());
                }else{
                    log.info("[{}] file not exist",filename);
                }
    
            }catch (Exception e){
                log.error("read file to string error",e);
            }
    
            return json;
        }
    
        public static String[] parseJsonArray(JSONObject json,String arg){
            JSONArray jsonArray = (JSONArray)json.get(arg);
            List<String> list = (List<String>)JSONArray.parseArray(jsonArray.toString(),String.class);
            return list.toArray(new String[list.size()]);
        }
    
        public static void main(String[] args) {
            JSONObject json =  getJsonObjFromConfiguration();
            Integer resultCode =  (Integer) json.get("resultCode");
            System.out.println(resultCode);
    
            String[] strings = parseJsonArray(json,"tags");
            for (String string:strings){
                System.out.print(string+" ");
            }
        }
    }
    
    

    最终结果:

    展开全文
  • Json编写配置文件,在C#中读取配置文件内容信息,显示在windows窗体控件中

    (写在前面:最近做项目的时候使用json写了配置文件,现做一小段笔记希望与大家交流探讨,其中若有不到之处欢迎各位批评指正)

    1、配置文件名称:config.json.txt
    文件名称可自由设置,本文采用config.json.txt【本质是一个.txt文档,内部语法采用json语法格式】
    2、配置文件存放目录:*\**\bin\Release
    本文存放路径为:*
    (项目文件夹)\**(解决方案)\bin\Release,这是为了读取相对路径的时候方便,代码如下:

    string strfile = File.ReadAllText(@"config.json.txt",Encoding.Default);
    

    如果不写Encoding.Default参数可能会遇到中文乱码的问题。如果File类型不识别,检查是否有以下引用:

    using System.IO;
    

    您也可以尝试自定义文件位置,并以@"{0}…\…\"的方式访问上级文件目录。
    3、验证语法是否有误
    Json在线验证工具:Json.cn 【网址:https://www.json.cn 用于验证json字符串是否存在语法错误,可根据json生成java或c#实体类。】
    4、配置文件内容
    config.json.txt内容:

    {
    “team”:[{
    “A”:“A的值”,
    “B”: “B的值”,
    “C”: [{
    “C1”: “C1的值”,
    “C2”: “C2的值”,
    “C3”: “C3的值”
    }
    ]}
    ]}

    下图为该配置文件的组织逻辑,属性之间的关系是树状的层级关系,类似的应用有很多,例如:students下包含张三、李四、王五等,张三下又包括学号、姓名、年龄等内容。
    json文件的逻辑
    由此生成用于接收Json数据的C#实体类如下,可以看出实体类是从最内层的块逐渐向上级生成的:

     public class CItem
        {
            /// <summary>
            /// C1的?值μ
            /// </summary>
            public string C1 { get; set; }
            /// <summary>
            /// C2的?值μ
            /// </summary>
            public string C2 { get; set; }
            /// <summary>
            /// C3的?值μ
            /// </summary>
            public string C3 { get; set; }
        }
         
        public class TeamItem
        {
            /// <summary>
            /// A的?值μ
            /// </summary>
            public string A { get; set; }
            /// <summary>
            /// B的?值μ
            /// </summary>
            public string B { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List <CItem > C { get; set; }
        }
         
        public class Root
        {
            /// <summary>
            /// 
            /// </summary>
            public List <TeamItem > team { get; set; }
        }
    

    5、加载 Newtonsoft.Json类库
    下载Newtonsoft.Json.dll动态链接库,在解决方案资源管理器中右键单击引用—添加引用,找到.dll文件加载到项目中。
    代码中添加:

    using Newtonsoft.Json;
    

    6、读取配置文件内容到窗体的comboBox控件中
    窗体设计如下图,想要将配置文件中的A、C1分别读入comboBox1 和comboBox2中,在form1 加载后直接将数据加载到列表中。
    在这里插入图片描述

    Form1中完整代码如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using Newtonsoft.Json;
    
    namespace MedusaStore
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                string strfile = File.ReadAllText(@"config.json.txt", Encoding.Default);
                Root myRoot = JsonConvert.DeserializeObject<Root>(strfile);
                for (int i = 0; i < myRoot.team.Count; i++)
                {
                    comboBox1.Items.Add(myRoot.team[i].A);
                }
                for (int j = 0; j < myRoot.team[0].C.Count; j++)
                {
                    comboBox2.Items.Add(myRoot.team[0].C[j].C1);
                }
            }
        }
    }
    

    运行结果如下图:
    在这里插入图片描述

    其中关键代码:
    将配置文件读取为string类型的字符串:

    string strfile = File.ReadAllText(@"config.json.txt", Encoding.Default);
    

    反序列化,将string转化为可读取的格式:

    Root myRoot = JsonConvert.DeserializeObject<Root>(strfile);
    
    展开全文
  • 关于json格式,java主要有二种解析方式(还有一种谷歌的解析用的比较少): ... ...下面是一段修改json文件的代码,用的第二种方式 大概思路就是将haisdb对象中的数据库连接(端口和地址):统一...
  • ES读取Json文件添加索引

    千次阅读 2017-04-15 15:56:46
    今天学习了下,ES添加索引: 添加方式 :1.读取 JSON 文件 获取相应的索引字段值 2.逐条读取写入ES创建索引。(注意:本例读一条,写一条效率非常低...
  • DataX批量生成json文件java程序

    千次阅读 2019-07-31 17:58:01
    DataX抽数时,需要配置json文件,如果一两个可以手动配就完事了,但是如果有上百个,手动配的话就要死人了,所以简单写了个java程序,批量生成json文件,包括全量导数和增量导数。 首先,需要配一个相关参数文件,...
  • Java 复杂的Json文件解析为java对象

    千次阅读 2017-09-01 11:04:52
    下面是一个较为复杂的Json文件的处理过程。该json文件的大致构成如下: 本文件是有很多的会议安排组成的,而每一个会议安排里又有内容,内容又进一步细分为items数组,items数组里又有article数组,所以可以看做...
  • 配置JSON文件

    2014-03-20 09:51:12
    编写的一个JSON配置文档,里边记录新版本程序的版本号,APK名称.
  • } } } } } 三:读取ES数据并调用输出流输出json文件 import org.elasticsearch.action.search.*; import org.elasticsearch.client.Client; import org.elasticsearch.common.unit.TimeValue; import org.elastic...
  • java几种读取配置文件的情况

    千次阅读 2018-07-31 14:20:21
    1、传统java项目,读取resource下的配置文件  1.1、通过当前执行线程获取类加载器找到配置文件 Properties properties = new Properties(); InputStream is = Thread.currentThread().getContextClassLoader...
  • java从jar包中读取资源文件

    万次阅读 多人点赞 2019-03-25 22:04:31
    一个JAVA项目需要在应用启动时读取一个文件,在这遇到了一个坑,就是在Idea 中,应用启动时可以正常读取这个文件,但应用打成jar包后直接运行就读取不到。 要读取文件位于/src/main/resources目录下,其相对路径为...
  • java解析json文件并保存到mysql数据库

    千次阅读 2019-12-09 12:36:11
    一、数据是从“聚合数据”这个网站获取的,访问相应的地址,就返回很长的json格式的数据,不过格式貌似有点小错误,因为最后一个键值对"error_code":0的...这个json文件的结构也不是很复杂,最外层的大括号(大括...
  • 03 设置读取json配置的类 新建了一个ConfigHelper的类,用于读取Json配置,代码如下: using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using System.IO; using ...
  • Java解析(读取)Json数据{}、[{}]

    万次阅读 2017-07-19 19:06:41
    Java解析(读取)Json数据 以前看过书上说,XML是web service间传输信息的标准格式吧,就看了看XML。最近在做个网站,又说是有了JSON,第一回听说就看了看,总结总结一下。 1.JSON介绍  JSON比XML简单,主要...
  • 使用JSON文件读取数据

    千次阅读 2015-07-07 09:51:32
    定义 JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常...由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,可以用 JSON 传输一个简单的 String,Number,Boolean,
  • CocosCreator开发笔记(8)-读取和解析JSON数据文件

    万次阅读 热门讨论 2018-03-22 21:48:44
    在游戏开发过程中,读取配置文件是必不可少的,而使用JSON做配置文件又比较常见,本文主要讲述什么是JSON文件以及如何在CocosCreator开发中读取和解析JSON数据文件。 什么是JSON JSON的英文全称是JavaScript ...
  • 最近在写MapReduce程序处理日志时,需要解析JSON配置文件,简化Java程序和处理逻辑。但是Hadoop本身似乎没有内置对JSON文件的解析功能,我们不得不求助于第三方JSON工具包。这里选择json-simple实现我们的功能。 ...
  • Java读取maven resource下文件

    千次阅读 2016-12-16 21:51:38
    src\resources\xx.json这种结构,如果要读取这个json文件,可以通过java.lang.Class.getResourceAsStream(String name)这个方法 注意:里面的文件,如果测试类和json文件,在同一目录下,则可以直接文件名java.lang...
  • 读取核心配置文件核心配置文件是指在resources根目录下的application.properties或application.yml配置文件读取这两个配置文件的方法有两种,都比较简单。先创建一个简单的springBoot程序,可以参考: ...
  • golang模块viper读取配置文件

    千次阅读 2019-07-14 18:19:00
    JSON、TOML、YAML、HCL和Java properties文件读取配置数据 可以监视配置文件的变动、重新读取配置文件 从环境变量中读取配置数据 从远端配置系统中读取数据,并监视它们(比如etcd、Consul) 从命令参数中...
  • IDEA(JAVA)使用json

    万次阅读 2017-08-24 21:33:32
    这几天想简单开发一个服务器与app端进行交互,目前最流行的就是用json进行数据交换,于是上网搜了好多json相关的文章,刚开始的确遇到很多问题,现在做一些整理,希望能帮助大家快速简单的入门 首先介绍一下jsonjson...
  • config.json配置文件详解以及资源文件操作简介config.json文件详解config.json文件组成部分appdeviceConfigmodule 简介 开发一个HAP应用可以说是由多个Ability组成,那么我们直接new File创建Ability之后会在config....
  • 文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data1 = xlrd.open_workbook(filename) # 读取第一个工作表 table = data1.sheets()[0...
  • Java 读取JAR文件信息 JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR ...
  • 处理JSONJava API :JSON的简介

    千次阅读 2015-11-10 16:37:01
    原文链接:处理JSONJava API:JSON的简介 英文原文:http://www.oracle.com/technetwork/articles/java/json-1973242.html 处理JSON的各种解析、生成、处理、转换和查询的JAVA API JSON (JavaScript ...
  • go读取配置文件-viper

    2020-09-07 09:30:40
    go读取配置文件-viperGo-viper目录结构读取本地配置文件读取远程key/valueInstallWhat is ViperLicense Go-viper Github: https://github.com/golang-collection/Go-viper Viper是适用于Go应用程序的完整配置解决...
  • java接收微信小程序上传的文件

    千次阅读 2018-01-18 11:25:49
    用微信小程序上传文件,微信会生成一个wx://开头的临时地址,很多人看到这个临时地址直接懵逼了,文件在哪里啊,怎么取文件,其实文件流就在请求头里面,需要自己去读取.一开始我也走了很多弯路,查阅了几篇帖子,其实都有...
  • JAVA SSM项目代码中读取properties文件

    千次阅读 2019-02-13 14:36:01
    URL url = this.getClass().getClassLoader().getResource("ele_user....在getResource()参数中传入文件名称,获得该文件在项目中的绝对路径,通过FileInputStream获得输入流,从而读取properties文件中的属性值。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,697
精华内容 18,278
关键字:

java程序读取json文件进行配置

java 订阅