1.这里主要实现如何以数组的形式写入到json文件当中,因为c++的Jsoncpp库中的.append只支持一个字符的写入(还是python的json友好)。去网上找了老久的解决办法,发现中文解答全是复制粘贴,真垃圾。最终还是自己花费了半天时间摸索怎么加(我好难,想哭)。话不多说,直接贴代码。

void writeFileJson(Eigen::Matrix<double, 2, 2> &point)
{
std::cout<<point<<std::endl;
//根节点
Json::Value root; // 创建一个一级节点
Json::Value second; // 创建一个二级节点 for(int i=0;i<point.rows(); i++){
double a[2] = {point.row(i)[0], point.row(i)[1]};
Json::Value third; // 因为我们要实现数组的追加,所以我们需要在这一层创建一个三级节点
for(auto i : a) {
third.append(i); // 因为对于C++ Json来说,只支持单个字符的追加,所以我们这里需要这句代码;
}
second["two title"].append(third); // 追加完之后,将追加的数组放在上一个数组之后。
}
//根节点属性
root["first title"].append(second); // 将我们的二级节点与一节节点关联起来
Json::StyledWriter sw; // 创建一个带有格式的写入
Json::FastWriter fw;
std::ofstream desFile("/Users/wpx/arap2/data/demo.json", std::ios::out | std::ios::app); // 不删除之前内容的添加
if (!desFile.is_open()) // 判断是否可以打开json文件;
{
std::cout << "Fail to pen des.jons";
}
desFile << fw.write(root); // 不带有格式的写入到json文件中。(就是在一行上写入所有内容)
// desFile << sw.write(root); // 有格式的写入到json文件中。(多行显示)
desFile.close(); // 记得关闭打开的json文件
}

  fw输出格式:

{"first title":[{"two title":[[1.0,2.0],[3.0,4.0]]}]}

  sw输出格式:

{
"first title" : [
{
"two title" : [
[ 1.0, 2.0 ],
[ 3.0, 4.0 ]
]
}
]
}

 2.既然说了python很好,我这里也贴一下python版的;

def create_json(points, file_name):
#points 就是我们的数据,我这里是numpy数组格式。
# file_name 你要保存的json文件路径
point = []
jsons = points
for j in range(len(jsons)):
data = jsons[j]
data.append(0.936177)
point.append(data)
diract = {'first title': [{'second title': point}]}
with open(file_name, 'w') as outfile:
json.dump(str(diract), outfile)

  

将一个Eigen::Matrix中的数据(数组格式),按行写入到json文件当中.的更多相关文章

  1. Ajax中返回数据的格式

    Ajax中常见的返回数据的格式有三种:分别为文本,XML和JSON 返回的文本格式我们在上一堂课Ajax基础介绍中已经介绍过了 Ajax.php Form.html:通过Ajax对象的response ...

  2. 从MongoDB里面取得json格式的数据,然后存为本地的json文件,然后再从json读取变为dict

    帮宣传下彩印网(www.caiyin.com) 有印刷,广告等等方面的需求就找这个网站吧,没错的. 天气预报在MongoDB中的天气预报的存储方式是: /* 1 */ { "_id" ...

  3. CDH离线数据导入solr:利用MapReduceIndexerTool将json文件批量导入到solr

    场景描述:前段时间,将实时数据通过kafka+flume+morphline的方式接入到solr中.新进来的数据已经可以在solr中看到了,但是以前的历史数据还没有导入solr. CDH提供利用Map ...

  4. node——将用户提交的数据写入data.json文件

    前续 当我们在进行将数据提交到某个网页时,需要将提交数据保存下来 1.提交数据 2.获得数据 3.保存数据 先看提交数据: <!DOCTYPE html> <html lang=&q ...

  5. 菜鸟入门【ASP.NET Core】5:命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options

      命令行配置 我们通过vs2017创建一个控制台项目CommandLineSample 可以看到现在项目以来的是dotnet core framework 我们需要吧asp.net core引用进来 ...

  6. 第九篇 数据表设计和保存item到json文件

    上节说到Pipeline会拦截item,根据设置的优先级,item会依次经过这些Pipeline,所以可以通过Pipeline来保存文件到json.数据库等等. 下面是自定义json #存储item到 ...

  7. 【ASP.NET Core快速入门】(五)命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options

    命令行配置 我们通过vs2017创建一个控制台项目CommandLineSample 可以看到现在项目以来的是dotnet core framework 我们需要吧asp.net core引用进来,我 ...

  8. 向多页TABLE中插入数据时,新增行总是在当前页的最后一行

    CODE IN CO OATableBean table = (OATableBean)webBean.findChildRecursive("LineTable"); int n ...

  9. Java中的字符串流的读取和写入(创建文件并判断重复账户)

    各位我又来了!!哎!好心酸!我还没注册到三天!!没法登上博客的首页!!心累!! import java.io.BufferedOutputStream; import java.io.Buffered ...

  10. CMD批处理把txt文本中的每行写入一个新文件,第一列作文件名

    需求 现在有一个文件格式如图 ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17001 89.84 8.87 1.29 -0.0 0.0 68.99 0.0 0. ...

随机推荐

  1. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-59 - 判断元素是否显示 - 上篇

    1.简介 有些页面元素的生命周期如同流星一闪,昙花一现.我们也不知道这个元素在没在页面中出现过,为了捕获这一美好瞬间,让其成为永恒.我们就来判断元素是否显示出现过. 在操作元素之前,可以先判断元素的状 ...

  2. 【Mybatis + Spring】 Mybatis - Spring 结合

    环境搭建 EvBuild 软件环境准备 - MySQL 5.0 + - IDEA 2018 + - JDK1.8 + 依赖包相关 - Junit单元测试 - JDBC驱动 - Mybatis 组件 - ...

  3. 【Layui】02 图标 Icon

    官网下载地址: https://www.layui.com/ 学习参考: https://www.bilibili.com/video/BV1ct411n7SN [Layui的文件结构] 我们只需要这 ...

  4. 神州笔记本 win11 节能模式 供电不足 自动关机

    刚刚买了一个神州笔记本没几天,用着用着就出现问题了. 本人使用电脑有个极为不好的习惯,那就是会一次性打开特别多的应用,然后不关,一直留着,这个习惯虽然不好但也是一直没有啥问题的,不过最近换了个新的笔记 ...

  5. 《Python数据可视化之matplotlib实践》 源码 第一篇 入门 第四章

    图 4.1 import matplotlib import matplotlib.pyplot as plt import numpy as np # 设置matplotlib正常显示中文和负号 m ...

  6. Trump 黑马 or 搅局者? 讲座视频分享

    沈逸-特朗普能走多远   https://www.bilibili.com/video/BV1r7411t7VS/?spm_id_from=333.788.videocard.2     国际关系 对 ...

  7. 【转载】pip install 使用多个.local环境

    原文地址: https://zhuanlan.zhihu.com/p/351468170 ================================ 我们都知道anaconda可以安装不同的py ...

  8. Fedora安装后需要做的事情

    http://blog.csdn.net/fengxinlinux/article/details/72794967

  9. JavaScript设计模式样例十三 —— 模版方法模式

    模板方法模式(Template Method Pattern) 定义:一个抽象类公开定义了执行它的方法的方式/模板.它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行.目的:一些方法通用 ...

  10. 搭建QT开发环境

    下载 Qt官网,Qt下载网址 安装前要登录账号,其他的该咋就咋样,路径不能有中文. 组件自己选 我的是MinGW.Android.虚拟键盘.Qt脚本.Qt Creator 然后创个项目,能跑起来就是安 ...