java读取json模板并修改_java – Json解析问题(值自动更改为float)

嗨,我在下面提到了我的json格式

[{

"id": "1",

"MinValue": 2,

"MaxValue": 29

}, {

"id": "2",

"MinValue": 0.5,

"MaxValue": 5.6

}]

当我解析MinValue& MaxValue的回报如2.0,29.0(浮动)

请帮助我获得确切的价值.

我的解析代码

JSONArray jsonArray = new JSONArray(result);

if (jsonArray != null) {

for (int i = 0; i < jsonArray.length(); i++) {

try {

JSONObject profileObject = jsonArray.getJSONObject(i);

String minValue = profileObject.getString(Constants.VALUE_BMCPROFILE_MINVALUE);

String maxValue = profileObject.getString(Constants.VALUE_BMCPROFILE_MAXVALUE);

}

}

}

解决方法:

替换为

String minValue = profileObject.getString(Constants.VALUE_BMCPROFILE_MINVALUE);

String maxValue = profileObject.getString(Constants.VALUE_BMCPROFILE_MAXVALUE);

这个

double minValue = profileObject.getDouble(Constants.VALUE_BMCPROFILE_MINVALUE, 0);

double maxValue = profileObject.getDouble(Constants.VALUE_BMCPROFILE_MAXVALUE, 0);

根据json数据,min和max值显然是Double而不是String.

标签:json,java,android

来源: https://codeday.me/bug/20190706/1396227.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以将字典类型改为 C 语言中的基本数据类型,例如将字典类型的字符串改为 char 数组,将整数改为 int 类型,将浮点数改为 double 类型。可以根据实际需要进行修改修改后的代码如下: ``` import json # 读取json文件 with open('input.json', 'r') as f: data = json.load(f) # 动态创建结构体类型 struct_name = 'MyStruct' members = [(k, type(v)) for k, v in data.items()] MyStruct = type(struct_name, (object,), dict(members)) # 生成结构体定义 struct_def = 'struct %s {\n' % struct_name for name, _type in members: if _type == int: struct_def += ' int %s;\n' % name elif _type == float: struct_def += ' double %s;\n' % name elif _type == str: struct_def += ' char %s[256];\n' % name struct_def += '};\n\n' # 生成json解析代码 parse_code = 'void parse_json(json_t *root, %s *obj) {\n' % struct_name for name, _type in members: if _type == int: parse_code += ' obj->%s = json_integer_value(json_object_get(root, "%s"));\n' % (name, name) elif _type == float: parse_code += ' obj->%s = json_real_value(json_object_get(root, "%s"));\n' % (name, name) elif _type == str: parse_code += ' const char *str = json_string_value(json_object_get(root, "%s"));\n' % name parse_code += ' strncpy(obj->%s, str, sizeof(obj->%s));\n' % (name, name) parse_code += '}\n\n' # 生成C代码 c_code = struct_def + parse_code + """ #include <jansson.h> int main() { json_t *root; json_error_t error; // 从文件中读取json数据 root = json_load_file("input.json", 0, &error); // 解析json数据 %s my_struct; parse_json(root, &my_struct); // 处理结构体 // ... // 释放json对象 json_decref(root); return 0; } """ % struct_name # 将C代码写入文件 with open('output.c', 'w') as f: f.write(c_code) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值