精华内容
下载资源
问答
  • Notepad++中编辑JSON文件

    万次阅读 2013-05-26 11:20:49
    1. 配置Notepad++关联.json文件 在Setting > Style Configure, 选择Javascript,输入User ext 为 'json',保存。 在Setting > Preference,选择File Association Tab -> Customize,输入 .json单击 -> 2....

    1. 配置Notepad++关联.json文件

    在Setting > Style Configure, 选择Javascript,输入User ext 为 'json',保存。

    在Setting > Preference,选择File Association Tab -> Customize,输入 .json单击 ->

    2.安装相关插件:

    JSMin或者JSONViewer

    展开全文
  • 一、json文件简介 1、json文件 2、json与其他存储数据方式比较 二、C++操作json文件 1、jsoncpp 库下载 2、C++从字符串中读取json 3、C++从文件中读取json 4、C++写入json文件 5、主函数 附:jsoncpp库配置...

    目录

    前言

    一、json文件简介

    1、json文件

    2、json与其他存储数据方式比较

    二、C++操作json文件

    1、jsoncpp 库下载

    2、C++从字符串中读取json

    3、C++从文件中读取json

    4、C++写入json文件

    5、主函数

     附:jsoncpp库配置

    1、解压并转移

    2、配置属性

    3、配置项目


    前言

    json文件是比较轻量级的文件,格式简单,使用方便。用来存放信息相比其他方式有自己得天独厚的优势。

    今天给大家分享的是如何利用C++来操作json文件。

    如果你知道如何使用jsoncpp类库,可以不用看附,如果第一次使用,请先到最后,将环境配置好,再进行操作。

    有人说用这篇文章中配置的方法有问题。我想大家应该是有些小细节跟我做的不一样,为此,我为大家配置好一个,大家可以加群:326866692下载使用。

    包括jsoncpp库也在群文件中。

     

     

    一、json文件简介

    1、json文件

    JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    2、json与其他存储数据方式比较

    为什么要用json文件呢?

    我们最常使用的存储数据的方式有很多,比如利用txt文件存,利用xml存,利用word存,利用Excel存,如果我们要求比较高,还可以使用数据库存。

    相对于txt,word来说,json格式更加明确,获取重要信息非常方便。

    相对于xml来说,json格式更加简洁,存储同样的文件,花费的内存更小。

    相对于Excel来说,json更适合存储字符类文件。Excel相当于比较简单的数据库了。

    相对于数据库来说,json更加方便,数据库我们还需要做一些设置,安装一些软件。json可以直接使用。

    二、C++操作json文件

    1、jsoncpp 库下载

    大家可以自己上网下载jsoncpp 库,也可以加群:326866692下载;

    群二维码

    2、C++从字符串中读取json

    json样式比较多,这里分享两种,一种比较直接简单的,一种稍微有些复杂的。

    1.简单json样式

    我们定义一个字符串来保存如下json数据:

    {
        "name" : "shuiyixin",
        "age" : "21",
        "sex" : "man"
    }

    读取代码如下:

    void readStrJson()
    {
    	//字符串  
    	const char* str =
    		"{\"name\":\"shuiyixin\",\"age\":\"21\",\"sex\":\"man\"}";
    
    
    	Json::Reader reader;
    	Json::Value root;
    
    	//从字符串中读取数据  
    	if (reader.parse(str, root))
    	{
    		string name = root["name"].asString();
    		int age = root["nomen"].asInt();
    		string sex = root["sex"].asString();
    		cout << name + "," << age << "," << sex <<  endl;
    	}
    
    }

    2.复杂json样式

    所谓复杂,就是说,json里面分好几层,上面那个简单的只有一层,json数据如下:

    {
        "name":"shuiyixin",
        "major":[
        {
            "AI":"MachineLearning"
        },
        {
            "AI":"DeepLearning"
        },
        {
            "AI":"ComputerVision"
        }]
    }

    读取代码如下:

    void readStrProJson()
    {
    	string strValue = "{\"name\":\"shuiyixin\",\"major\":[{\"AI\":\"MachineLearning\"},{\"AI\":\"DeepLearning\"},{\"AI\":\"ComputerVision\"}]}";
    	Json::Reader reader;
    	Json::Value value;
    	if (reader.parse(strValue, value))
    	{
    		string out = value["name"].asString();
    		cout << out << endl;
    		const Json::Value arrayObj = value["major"];
    		for (unsigned int i = 0; i < arrayObj.size(); i++)
    		{
    			out = arrayObj[i]["AI"].asString();
    			cout << out<<endl;
    		}
    	}
    }
    

     

    3、C++从文件中读取json

    从字符串中读取json文件只是为了让大家能够了解json文件,我们最终还是要从文件中读取的。

    这个读取的json文件,大家可以通过下面的写json文件自己创建一个。

    以下面这个json文件为例:

    {
       "age" : 21,
       "friends" : {
          "friend_age" : 21,
          "friend_name" : "ZhaoWuxian",
          "friend_sex" : "man"
       },
       "hobby" : [ "sing", "run", "Tai Chi" ],
       "name" : "shuiyixin",
       "sex" : "man"
    }
    

    读取代码如下:

    void readFileJson()
    {
    	Json::Reader reader;
    	Json::Value root;
    
    	//从文件中读取,保证当前文件有demo.json文件  
    	ifstream in("demo.json", ios::binary);
    
    	if (!in.is_open())
    	{
    		cout << "Error opening file\n";
    		return;
    	}
    
    	if (reader.parse(in, root))
    	{
    		//读取根节点信息  
    		string name = root["name"].asString();
    		int age = root["age"].asInt();
    		string sex = root["sex"].asString();
    
    		cout << "My name is " << name << endl;
    		cout << "I'm " << age << " years old" << endl;
    		cout << "I'm a " << sex << endl;
    
    		//读取子节点信息  
    		string friend_name = root["friends"]["friend_name"].asString();
    		int friend_age = root["friends"]["friend_age"].asInt();
    		string friend_sex = root["friends"]["friend_sex"].asString();
    
    		cout << "My friend's name is " << friend_name << endl;
    		cout << "My friend's sex is "<<friend_sex << endl;
    		cout << "My friend is " << friend_age << " years old" << endl;
    
    		//读取数组信息  
    		cout << "Here's my hobby:" << endl;
    		for (unsigned int i = 0; i < root["hobby"].size(); i++)
    		{
    			string ach = root["hobby"][i].asString();
    			cout << ach << '\t';
    		}
    		cout << endl;
    
    		cout << "Reading Complete!" << endl;
    	}
    	else
    	{
    		cout << "parse error\n" << endl;
    	}
    
    	in.close();
    }
    

    4、C++写入json文件

    除了读,我们经常还会写入json文件,json文件如下:

    {
       "age" : 21,
       "friends" : {
          "friend_age" : 21,
          "friend_name" : "ZhaoWuxian",
          "friend_sex" : "man"
       },
       "hobby" : [ "sing", "run", "Tai Chi" ],
       "name" : "shuiyixin",
       "sex" : "man"
    }
    

    写入代码如下:

    void writeFileJson()
    {
    	//根节点  
    	Json::Value root;
    
    	//根节点属性  
    	root["name"] = Json::Value("shuiyixin");
    	root["age"] = Json::Value(21);
    	root["sex"] = Json::Value("man");
    
    	//子节点  
    	Json::Value friends;
    
    	//子节点属性  
    	friends["friend_name"] = Json::Value("ZhaoWuxian");
    	friends["friend_age"] = Json::Value(21);
    	friends["friend_sex"] = Json::Value("man");
    
    	//子节点挂到根节点上  
    	root["friends"] = Json::Value(friends);
    
    	//数组形式  
    	root["hobby"].append("sing");
    	root["hobby"].append("run");
    	root["hobby"].append("Tai Chi");
    
    	//直接输出  
    	//cout << "FastWriter:" << endl;
    	//Json::FastWriter fw;
    	//cout << fw.write(root) << endl << endl;
    
    	//缩进输出  
    	cout << "StyledWriter:" << endl;
    	Json::StyledWriter sw;
    	cout << sw.write(root) << endl << endl;
    
    	//输出到文件  
    	ofstream os;
    	os.open("demo.json", std::ios::out | std::ios::app);
    	if (!os.is_open())
    		cout << "error:can not find or create the file which named \" demo.json\"." << endl;
    	os << sw.write(root);
    	os.close();
    
    }

    要注意的是:

    1.如果要写入的文件不存在,会自动创建该文件;

    2.如果文件存在,写入过程不会覆盖文件中原有数据,而是将新数据写在原有数据后面。

    5、主函数

    所有的功能模块都写好啦,剩下就是主函数啦:

    #include <string>  
    #include <json.h>
    #include <iostream>  
    #include <fstream>  
    using namespace std;
    
    void readStrJson(); //从字符串中读取JSON  
    void readStrProJson(); //从字符串中读取JSON(内容复杂些)  
    void readFileJson(); //从文件中读取JSON 
    void writeFileJson();  //将信息保存为JSON格式  
    
    int main(int argc, char *argv[])
    {
    	writeFileJson(); //写入json
    
    	readFileJson(); //从文件中读取JSON 
    
    	cout << "\n\n";
    
    	readStrJson();  //从字符串中读json
    
    	cout << "\n\n";
    
    	readStrProJson();//从字符串中读取JSON(内容复杂些)  
    	
    	system("pause");
    	return 0;
    }

     附:jsoncpp库配置

    jsoncpp库配置与opencv配置原理相同,大家可以看一下下面的教程:

    opencv配置(win10+VS2015+OpenCV3.1.0) :https://blog.csdn.net/shuiyixin/article/details/80386022

    不过jsoncpp库的内容比较少,配置没有opencv那么麻烦:

    1、解压并转移

    首先将库解压,将下面的两个文件夹复制到你创建的项目下面

    将库解压
    将两个文件夹复制到自己创建的项目中

    2、配置属性

    点击调试,并点击项目属性

    点击调试->项目属性
    选择VC++目录中的包含目录,点击修改
    将includ文件夹下的json文件路径复制到这里,并保存

    3、配置项目

    将src文件夹下的lib_json文件夹下的cpp文件,添加到源文件中:

    找到src文件夹->lib_json文件夹->所有cpp文件,并复制

     

    添加到源文件中

    然后就可以使用啦。

     

    展开全文
  • jackson Read Write 读取 json 文件和写入 json 文件 ...有时候需要将 json写入磁盘或者由此片读取,这里提供两个例子:创建json对象并写入文件、读取 json文件并转换为 json对象,例子如下: 创建 JSON对象,...

    jackson Read Write 读取 json 文件和写入 json 文件

    jackson 可以由这里获得 http://repo1.maven.org/maven2/com/fasterxml/jackson/

    有时候需要将 json 写入磁盘或者由此片读取,这里提供两个例子:创建json对象并写入文件、读取 json 文件并转换为 json 对象,例子如下:

    创建 JSON 对象,并写入磁盘文件 c:/temp/test.json

    package test;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.node.ArrayNode;
    import com.fasterxml.jackson.databind.node.ObjectNode;
    
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class WriteJSON
    {
    
      public WriteJSON()
      {
    
      }
    
      public static void main(String[] args)
      {
        try
        {
          ObjectMapper mapper = new ObjectMapper();
    
          // Create the root node
          ObjectNode root = mapper.createObjectNode();
          // Create a child node
          ObjectNode node1 = mapper.createObjectNode();
          node1.put("nodekey1", 1);
          node1.put("nodekey2", 2);
          // Bind the child nodes
          root.set("child", node1);
          // Array of nodes
          ArrayNode arrayNode = mapper.createArrayNode();
          arrayNode.add(node1);
          arrayNode.add(1);
          // Bind array node
          root.set("arraynode1", arrayNode);
          root.set("arraynode2", arrayNode);
    
          try (FileWriter file = new FileWriter("c:/temp/test.json"))
          {
            file.write(root.toString());
            file.flush();
          }
          catch (IOException e)
          {
            e.printStackTrace();
          }
        }
        catch (Exception e)
        {
          e.printStackTrace();
        }
      }
    }
    

     

    数据以 json 格式存储在文件 c:/temp/data.json 中,用 jackson 的 ObjectMapper 对象载入,用 JsonNode 对象即可进行读取或者存取操作。

    c:/temp/data.json 文件内容:

    {"data":{"birth_day":7,"birth_month":6},"errcode":0,"msg":"ok","ret":0}

    java 代码如下:

    import java.io.File;
    import java.io.IOException;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    public class ReadJSON
    {
    
      public static void main(String[] args)
      {
        getJsonFile();
    
      }
    
      public static String getJsonFile()
      {
        String strResult = "";
        ObjectMapper objMapper = new ObjectMapper();
    
        try
        {
          // 指定文件
          String strText = "c:/temp/test.json";
          JsonNode rootNode = objMapper.readTree(new File(strText));
          // 指定某一个节点
          String strData = rootNode.get("child").toString();
    
          System.out.println(rootNode.toString());
          System.out.println(strData);
    
          // 获得 json 字符串
          strResult = rootNode.toString();
        }
        catch (JsonProcessingException e)
        {
          e.printStackTrace();
        }
        catch (IOException e)
        {
          e.printStackTrace();
        }
    
        return strResult;
      }
    
    }
    

    控制台输出结果:

    {"data":{"birth_day":7,"birth_month":6},"errcode":0,"msg":"ok","ret":0}
    {"birth_day":7,"birth_month":6}

     

     

     

    blog.csdn.net/joyous/article/details/50532149

    Q群236201801讨论

     

     

    展开全文
  • json文件编辑

    千次阅读 2018-11-26 21:35:55
    (2)如果不需要进行修改,可直接在notepad++中保存为json文件。如果需要修改,保存后,可能在跑代码的时候发生json文件无法识别的情况。 方法: (1)直接在【记事本】中修改(还没试,不知道可行性),然后保存...

    ValueError: No JSON object could be decoded


    示例:一段json代码

    (1)Ctrl+A复制全部文本

    (2)如果不需要进行修改,可直接在notepad++中保存为json文件。如果需要修改,保存后,可能在跑代码的时候发生json文件无法识别的情况。

    方法:

    (1)直接在【记事本】中修改(还没试,不知道可行性),然后保存为json文件。

    (2)使用python

    import json
    import os
    os.chdir(r"E:\3.code_SERVER\version5_gcForest")
    
    data = 网页复制过来的那堆代码
    
    with open('data.json','w') as f:
        json.dump(data,f)

    在上述代码的data中,因为源代码有 null 这一项,必须先给其加上双引号”“,然后再去记事本手动修改。

     

    展开全文
  • 原生js读取json文件

    万次阅读 多人点赞 2019-05-23 14:43:32
    1.首先编写一个json文件:demo.json [ { "name":"张三", "sex":"男", "email":"zhangsan@123.com" }, { "name":"李四", "sex":"男", "email":"lisi@123.com" }, { "name":"王五", "sex":"女", ...
  • C# 读取json文件与写json文件

    千次阅读 2019-10-28 16:13:30
    在开发中,经常会用到这个问题,仅做一个记录 使用nuget获取Newtonjson.Json 引入: using Newtonsoft.Json;...读取json文件 string wordTemplateName = "WordTemplate.json"; StreamReade...
  • 1、首先的思路是.txt文件转为.json文件 用fileReader 来对数据进行处理 2、处理后得到一个json数组对象,但是不能每次用到的时候都去读取.txt文件,毕竟里面的数据可不少,还是本地生成一个json文件 function ...
  • 解析json文件,从json文件中提取信息

    千次阅读 2018-12-13 14:37:30
    使用labelme标注工具标注生成的文件为json文件,要使用标注结果,需要提取标注结果中的坐标信息,并将结果生成label。 代码如下: import numpy as np import os import json import io import PIL.Image def ...
  • PHP数组数据写入JSON文件 &lt;?php // 生成一个PHP数组 $data = array(); $data['name'] = 'admin'; $data['pwd'] = '123456'; // 把PHP数组转成JSON字符串 $json_string = json_encode($data); // 写入...
  • json文件中注释If you’re having trouble adding comments to your JSON file, there’s a good reason: JSON doesn’t support comments. 如果您在将注释添加到JSON文件时遇到问题,则有充分的理由:JSON不支持...
  • 追加写入 json 文件 有一个 test.json 文件,包含内容如下: { "key_1": "value_1" } 现需要追加写入 json 文件,向其中增加值,使其包含内容如下: { "key_1": "value_1", "key_2": "value_2" } Python 代码...
  • 这是通过抓包工具抓取到的json文件 然后json文件在线解析,把内容复制粘贴进去解析得出下面的内容(右边框内) json文件的地址url="http://www.lagou.com/lbs/getAllCitySearchLabels.json" 用...
  • json文件查看

    千次阅读 2019-10-23 11:18:25
    用Notpad++或者记事本打开.json文件时,数据格式不整齐,不好查看,故使用下面的方法: 在VS中打开.json文件,是一整行数据,如下: 然后进行操作:Ctrl+k+d,即可分割数据,成为下面的数据格式,方便查看。 ....
  • Python读写Json文件

    千次阅读 2021-05-26 11:20:31
    主要方法 了解下面这 4 个 Python 的方法,处理 json 基本读写转换就没问题了。 dump() 将字典数据写入到 json 文件 load() 读取 json 文件,返回... # 将字典数据写入到json文件中 print('写Json:') dict1 = {'nam
  • 在开发单机游戏的时候,想将游戏数据存到json文件中,但是一直查不到如何写入数据到json文件中,查api也没看到相关文件流操作的api,希望有所指点,谢谢!
  • JSON & GSON - 读取 JSON 文件

    千次阅读 2018-12-13 15:08:29
    我们拿到 JSON 文件,若想通过 java 读取其中的数据,该怎么做呢? 读前必知: IO 基础知识 FileUtils =&...1、针对小JSON文件 { "name": "ALemon", "age": ...
  • JSON文件以及Python对JSON文件的读写

    千次阅读 2018-10-07 10:43:09
    一,什么是JSON文件 JSON和XML都是互联网上数据交换的主要载体。 在JSON出现之前,大家一直用XML来传递数据。因为XML是一种纯文本格式,所以它适合在网络上交换数据。XML本身不算复杂,但是,加上DTD、XSD、XPath...
  • python读取和保存json文件

    万次阅读 多人点赞 2019-12-30 21:01:37
    json文件是一种常见的数据存储文件,比txt看着高级点,比xml看着人性化一点。 同时,json作为一种通用协议的文件格式,可以被各种语言方便地读取。所以,json非常适合用来存储结构化的数据。 json的具体介绍和使用...
  • 1.创建一个json文件:首先在src/main/下建一个assets文件夹,然后再assets下建一个xxxx.json文件,把数据按照json格式写到文件中即可 我的json文件名为province.jason,数据格式如下: { "province": [ {"id":1...
  • Json文件解析

    千次阅读 2018-08-01 21:29:25
    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于存储和交换文本信息。它比XML更小、更快、更易解析。  JSON语法规则: 数据在键值对中 数据由逗号分隔 花括号保存对象 方括号保存数组  ...
  • JSON 文件格式

    万次阅读 2017-01-19 11:17:02
    最近的开发中用到了JSON文件,JSON是网络中比较常用的数据交换格式,Google chrome 浏览器的书签文件就采用了JSON格式。 以下是官方网站对JSON的介绍,URL:http://json.org//json-zh.html   JSON(JavaScript ...
  •   以前看过这些知识,今天用到的时候,发现自己忘记了,都不知道assets文件夹在哪个目录下。...我们右击assets目录新建File,起名”dynamic.json”,然后我们在文件中写一些json数据: {"dyn...
  • python实现多个json文件合并到一个json文件! 1. 代码 # !/usr/bin/env python # -*- encoding: utf-8 -*- """ @author: kaifang zhang @license: Apache License @time: 2020/12/09 @contact: kaifang.zkf@dtwave-...
  • -导入之前项目根目录下的project.config.json文件: { "description": "A WePY project", "setting": { "urlCheck": true, "es6": false, "postcss": false, "minified": false }, "compileType": ...
  • 官网json文件很全

    千次下载 热门讨论 2012-04-05 17:39:39
    官网json文件很全
  • python读写json文件

    千次阅读 2017-10-30 17:17:00
    相比java,python对json文件的处理就简单很多。java操作json文件的话需要引用jar包及相关依赖包,想用java操作json的同学可以去百度,这里就不赘述了。首先说读json文件在进行json操作之前,首先要了解json的格式,...
  • python 读取和存入json文件 from pymongo import MongoClient import json class Json2Mongo(object): def __init__(self): self.host = '0.0.0.0' self.port = 27017 # 创建mongodb客户端 ...
  • Python读写json文件

    千次阅读 2016-11-29 01:04:46
    这几天做数据处理的时候需要将csv文件转为json文件,于是了解了一下如何用python读写json文件,这里简要记录一下方法和需要注意的地方(不定期更新)。
  • TS引入json文件

    千次阅读 2020-10-28 16:46:15
    TS引入json文件
  • Eclipse json文件报错

    千次阅读 2018-01-25 15:48:38
    只要找一个json在线解析,验证你的json文件格式的正确性,错误可以忽略。 如要消除红叉,关闭Json Validation即可,如下操作: Window > Preferences > Eclipse > 搜索Validation > 右侧将“JSON Validator”...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 961,902
精华内容 384,760
关键字:

如何编辑json文件