精华内容
下载资源
问答
  • 出现的原因:txt文件直接转json中文会出现乱码 不要用txt直接转json文件!!! 折腾了好一会儿,才发现自己的源文件就有问题…… 以后请用正常的方式创建文件可以吗??头秃……

    出现的原因:txt文件直接转json中文会出现乱码

    问题描述

    不要用txt直接转json文件!!!
    折腾了好一会儿,才发现自己的源文件就有问题……
    以后请用正常的方式创建文件可以吗??头秃……

    展开全文
  • 最近要将爬取的数据通过json.dump处理后保存成json文件,程序一切运行正常,但是打 开保存之后的json文件发现除了字母,原来的字典数据里面的中文全部变成了unicode 码,像下面这个样子 噢,这真是一个令人悲伤的...

    最近要将爬取的数据通过json.dump处理后保存成json文件,程序一切运行正常,但是打

    开保存之后的json文件发现除了字母,原来的字典数据里面的中文全部变成了unicode

    码,像下面这个样子
    在这里插入图片描述
    噢,这真是一个令人悲伤的故事。。。。

    然后在网上找了几个方法,经尝试之后,发现都不行,哈哈哈

    后来发现了这个老哥的博客,讲的非常详细!!!!

        try:
            with open(jsonfile,'w',encoding = 'utf-8') as jfile:
            	#即添加参数 ensure_ascii=False,它默认的是Ture
                json.dump(list_all_pages,jfile,ensure_ascii=False,indent = 4)
    

    总结一下:

    1、python3里面默认编码是unicode

    2、做dump与dumps操作时,会默认将中文转换为unicode,但在做逆向操作load和loads时会转换为中文,但是中间态(例如存储的json文件)的中文编码方式仍然是unicode

    解决办法:
    在dump里面添加ensure_ascii=False

    参考:
    https://blog.csdn.net/firefox1/article/details/78331369
    https://blog.csdn.net/u014519194/article/details/53927149

    展开全文
  • 记事本打开json文件,问题记录

    千次阅读 2018-04-20 12:26:16
    用记事本打开json文件,会将编码格式改为"utf-8 with BOM",导致JSON方法读取出错
    用记事本打开json文件,会将编码格式改为"utf-8 with BOM",导致JSON方法读取出错
    展开全文
  • 一、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文件,并复制

     

    添加到源文件中

    然后就可以使用啦。

     

    展开全文
  • 让浏览器打开JSON文件直接显示

    万次阅读 2014-09-17 15:14:28
    在做一個接口,返回的是json文件,做测试为了方便直接在网页上打开浏览。 现在突然打开会自动下载json文件了。然后百度了一下,得出解决办法: 解决办法也非常简单,需要我们在操作系统的注册表中添加关于 JSON 的 ...
  • 如何打开.json文件

    千次阅读 2020-04-13 23:03:12
    如何打开.josn文件 ...建议:使用firefox打开,但是如果涉及机器学习、深度学习的数据集,可能由于文件较大,所以打开会有一定的延迟,打开后从原始数据点击切换到JSON模式就可以正常查看了。 ...
  • jackson Read Write 读取 json 文件和写入 json 文件 ...有时候需要将 json写入磁盘或者由此片读取,这里提供两个例子:创建json对象并写入文件、读取 json文件并转换为 json对象,例子如下: 创建 JSON对象,...
  • 让IE浏览器打开JSON文件直接显示

    千次阅读 2015-04-20 15:32:54
    在做一個接口,返回的是json文件,做测试为了方便直接在网页上打开浏览。 现在突然打开会自动下载json文件了。然后百度了一下,得出解决办法: 解决办法也非常简单,需要我们在操作系统的注册表中添加关于 ...
  • 一般下载都是在a标签里面防止文件链接,就可以直接下载,但对于text,json东风文件的链接,浏览器自动在新窗口打开, 所以,想要下载,需要右键另存,当前这篇 主要事解决这个问题 首先,建一个js文件 导出其中的...
  • VSCode怎么打开settings.json文件

    千次阅读 2020-10-29 16:22:27
    点击左下角齿轮图标,选择命令面板 在搜索框输入:settings.json,并选中 vscode怎么打开settings.json文件
  • 原生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":"女", ...
  • 如何打开VSCode的lauch.json文件

    万次阅读 2020-04-03 22:15:08
    但是又不知道怎么打开这个lauch.json文件。 方案一 进入调试界面,点击配置按钮。 方案二 在文件浏览界面,进入工作目录–>.vscode目录下面 References vscode如何生成launch.json配置文件 ...
  • 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文件

    千次阅读 2020-06-21 17:19:16
    JSON是一种轻量级的数据交换格式...这里的json和python中的字典相似,但是json作为文件进行保存或者在传输的过程中都是字符串的形式,这点与字典有很大的不同。所以这里将python中的字典转换成字符串,也就是将pytho
  • json文件查看

    千次阅读 2019-10-23 11:18:25
    用Notpad++或者记事本打开.json文件时,数据格式不整齐,不好查看,故使用下面的方法: 在VS中打开.json文件,是一整行数据,如下: 然后进行操作:Ctrl+k+d,即可分割数据,成为下面的数据格式,方便查看。 ....
  • 实际上 IE 弹出下载提示也没有什么不好的,但是有时候想要迫不及待的看到Json返回的结果时,又需要反复的下载再打开查看,这个行为就显得让人讨厌了。如果能够像 Chrome 或 Firefox 可直接看结果就好了。
  • 打开游戏的json文件全是乱码,如何解决? 打开游戏的json文件全是乱码,如何解决? 打开游戏的json文件全是乱码,如何解决? 打开游戏的json文件全是乱码,如何解决? (这个一定要凑够30字才可以)所以
  • 将数据库数据生成json文件,然后读取json文件中的数据
  • 解析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 ...
  • 导出JSON文件 // 插件安装 import FileSaver from 'file-saver' import axios from 'axios' 导出代码 const data = JSON.stringify('存放JS数组或者对象') const blob = new Blob([data], { type: 'application/...
  • 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不支持...
  • 打开VS的配置json文件

    2020-08-06 18:02:14
    1.快捷键 ctrl +shift +p,出现如下 2.输入settings.json 3.回车
  • Vue中怎样获取json文件中的数据

    万次阅读 2018-12-10 21:25:00
    场景 访问百度音乐API需要传递音乐类型参数,而...json文件内容: 文件位置: 实现 musictype.json {  "currentType":[1,2,11,21,22,23,24,25] } listcate.vue &lt;template lang="...
  • Python读写Json文件

    千次阅读 2021-05-26 11:20:31
    主要方法 了解下面这 4 个 Python 的方法,处理 json 基本读写转换就没问题了。 dump() 将字典数据写入到 json 文件 load() 读取 json 文件,返回... # 将字典数据写入到json文件中 print('写Json:') dict1 = {'nam
  • 这是通过抓包工具抓取到的json文件 然后json文件在线解析,把内容复制粘贴进去解析得出下面的内容(右边框内) json文件的地址url="http://www.lagou.com/lbs/getAllCitySearchLabels.json" 用...
  • JSON & GSON - 读取 JSON 文件

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

空空如也

空空如也

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

怎样打开json文件