json格式怎么转换成图片?Json转换有哪些方式?

JSON是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成,在工作中,大家经常会用到json转换,那json格式怎么转换成图片?下面来我们就来给大家讲解一下。

首先要把所有你需要转换的json文件放在一个文件夹里,然后把这个文件夹的路径填入到下面的json_file就可以了。程序运行完会在文件下生成两个文件夹:mask和mask_viz

.json格式怎么转换成图片?Json转换有哪些方式?.png

mask中有png图,和两个标签文件

1.png

mask_viz中是可视化的mask图

2.png

程序:

#!/usr/bin/python
#- * -coding: UTF - 8 - * -#!H: \Anaconda3\ envs\ new_labelme\ python.exe
import argparse
import json
import os
import os.path as osp
import base64
import warnings
import PIL.Image
import yaml
from labelme
import utils
import cv2
import numpy as np
from skimage
import img_as_ubyte# from sys
import argv
def main():
    warnings.warn("This script is aimed to demonstrate how to convert the\n"
        "JSON file to a single image dataset, and not to handle\n"
        "multiple JSON files to generate a real-use dataset.")
json_file = "/home/jfw/needlabel/6_json/"#
freedom
list_path = os.listdir(json_file)
print('freedom =', json_file)
for i in range(0, len(list_path)):
    path = os.path.join(json_file, list_path[i])
if os.path.isfile(path):
    data = json.load(open(path))
img = utils.img_b64_to_arr(data['imageData'])
lbl, lbl_names = utils.labelme_shapes_to_label(img.shape, data['shapes'])
captions = ['%d: %s' % (l, name) for l, name in enumerate(lbl_names)]
lbl_viz = utils.draw_label(lbl, img, captions)# out_dir = osp.basename(path)
    .replace('.', '_')
out_dir = osp.basename(path)
    .split('.json')[0]
save_file_name = out_dir# out_dir = osp.join(osp.dirname(path), out_dir)
if not osp.exists(json_file + 'mask'):
    os.mkdir(json_file + 'mask')
maskdir = json_file + 'mask'
if not osp.exists(json_file + 'mask_viz'):
    os.mkdir(json_file + 'mask_viz')
maskvizdir = json_file + 'mask_viz'
out_dir1 = maskdir#
if not osp.exists(out_dir1): #os.mkdir(out_dir1)# PIL.Image.fromarray(img)
    .save(out_dir1 + '\\' + save_file_name + '_img.png')
PIL.Image.fromarray(lbl)
    .save(out_dir1 + '/' + save_file_name + '.png')
PIL.Image.fromarray(lbl_viz)
    .save(maskvizdir + '/' + save_file_name +
        '_label_viz.png')# if not osp.exists(json_file + '\\' + 'mask_png'): #os.mkdir(json_file + '\\' + 'mask_png')# mask_save2png_path = json_file + '\\' + 'mask_png'#################################
mask_pic = cv2.imread(out_dir1 + '\\' + save_file_name + '_label.png', )# print('pic1_deep:', mask_pic.dtype)# mask_dst = img_as_ubyte(lbl)# mask_pic# print('pic2_deep:', mask_dst.dtype)# cv2.imwrite(mask_save2png_path + '\\' + save_file_name + '_label.png', mask_dst)##################################
with open(osp.join(out_dir1, 'label_names.txt'), 'w') as f:
    for lbl_name in lbl_names:
    f.write(lbl_name + '\n')
warnings.warn('info.yaml is being replaced by label_names.txt')
info = dict(label_names = lbl_names)
with open(osp.join(out_dir1, 'info.yaml'), 'w') as f:
    yaml.safe_dump(info, f, default_flow_style = False)
print('Saved to: %s' % out_dir1)
if __name__ == '__main__': #base64path = argv[1]
main()

Json转换有哪些方式?

1. Gson

1.添加依赖

<dependency >
    <groupId>com.google.code.gson</groupId> <
    artifactId > gson < /artifactId> <
    version > 2.2 .4 < /version> <
    /dependency>

2.转化方法

①.对象转Json:

Gson gson = new Gson();

String json = gson.toJson(Object object);

②.Json转对象:

gson.fromJson(String json, Class classOfT)

③.集合转Json:

Gson gson = new Gson();

String json = gson.toJson(Object object);

④.Json转集合:

TypeToken typeOfT = new TypeToken(){};

T fromJson = (T)gson.fromJson(json, typeOfT.getType());

2. Json-lib

1.添加依赖

<dependency >
    <groupId>net.sf.json-lib</groupId> <
    artifactId > json - lib < /artifactId> <
    version > 2.4 < /version> <
    classifier > jdk15 < /classifier> <
    /dependency>

2.转化方法

①.对象转Json:

JSONObject fromObject = JSONObject.fromObject(Object object);

String string = fromObject.toString();

②.Json转对象:

JSONObject fromObject2 = JSONObject.fromObject(string);

Object bean =JSONObject.toBean(JSONObject jsonObject, Class beanClass)

③.集合转Json:

JSONArray fromObject = JSONArray.fromObject(Object object);

String string = fromObject.toString();

④.Json转集合:

JSONArray fromObject2 = JSONArray.fromObject(string);

Collection collection = JSONArray.toCollection

(JSONArray jsonArray, Class objectClass)

3. Fastjson

Fastjson是阿里巴巴公司开发的,Java语言编写的,JSON的处理器。

1.添加依赖

<dependency >
    <groupId>com.alibaba</groupId> <
    artifactId > fastjson < /artifactId> <
    version > 1.2 .31 < /version> <
    /dependency>

2.转化方法

①对象转Json: JSON.toJSONString(Object object);

②Json转对象: JSON.parseObject(String text,Class Class);

③集合转Json: JSON.toJSONString(Object object)

④Json转集合: JSON.parseArray(String text,Class Class);

其实JSON是一种轻量级的数据交换格式,有了json这样的转换编辑工具,使得大家的工作效率更加进步哦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

java游戏怎么限免收费?Java能开发大型游戏吗?

java入门要学多久?Java如何入门?

json解析的本地工具有哪些?json文件解析工具