How to convert Java object to / from JSON (Jackson)

How to convert Java object to / from JSON (Jackson)

 

ObjectMapper mapper = new ObjectMapper();

String jsonInString = mapper.writeValueAsString(listTokeninfo);

 

 

System.out.println("PayLoad:"+jsonInString);

 

https://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

### 将XML格式的多边形数据转换为LabelMe JSON格式 对于对象检测或图像标注的任务,将XML格式中的多边形数据转换成LabelMe使用的JSON格式是一项常见的需求。此过程涉及解析原始XML文件并提取必要的几何形状信息和标签名称。 #### 解析XML文件 通常情况下,XML文件会按照特定结构存储每个物体的位置信息和其他属性。如果这些位置是以多边形形式给出,则意味着存在一系列(x,y)坐标点来定义边界[^1]。 ```python import xml.etree.ElementTree as ET def parse_xml(xml_file): tree = ET.parse(xml_file) root = tree.getroot() shapes = [] for obj in root.findall('object'): label = obj.find('name').text bndbox = obj.find('bndbox') cx = float(bndbox.find('cx').text) cy = float(bndbox.find('cy').text) w = float(bndbox.find('w').text) h = float(bndbox.find('h').text) angle = float(bndbox.find('angle').text) points = calculate_polygon_points(cx, cy, w, h, angle) shape = { 'label': label, 'points': points, 'shape_type': 'polygon' } shapes.append(shape) return {'shapes': shapes} def calculate_polygon_points(cx, cy, width, height, rotation_angle): import math # 计算矩形四个角相对于中心点的角度偏移量 angles = [0, 90, 180, 270] radians_per_degree = math.pi / 180.0 result = [] for a in angles: radian_offset = (a + rotation_angle) * radians_per_degree dx = (width/2)*math.cos(radian_offset) dy = -(height/2)*math.sin(radian_offset) px = int(round(dx)) + cx py = int(round(dy)) + cy result.append([px,py]) return result ``` 上述代码片段展示了如何读取XML文件并将其中的对象描述转化为适合LabelMe工具处理的形式。这里假设输入的框采用的是`[cx,cy,w,h,angle]`这种表示法。 #### 创建对应的JSON文件 一旦获得了所有需要的信息之后,就可以创建一个新的JSON文件用于保存转换后的数据: ```json { "version": "4.5.6", "flags": {}, "shapes": [ {"label":"example_label","points":[[x1,y1],[x2,y2],...],"group_id":null,"shape_type":"polygon","flags":{}} ], "imagePath": "path_to_image.jpg", "imageData": null, "imageHeight": 720, "imageWidth": 1280 } ``` 注意,在实际应用中还需要设置正确的版本号、图片路径以及其他元数据字段以匹配具体的项目要求[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值