Java代码将JSON转换为键值对中的文本 [英] java code to convert json into text in key value pair
本文介绍了Java代码将JSON转换为键值对中的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是Java的新手,我想编写一个代码,将传入的json文件转换为键值对中的文本,将其用管道分隔. json文件中的架构倾向于更改.因此,我无法基于每个值(我之前尝试过)编写程序.
I am new to Java, I want to write a code which convert my incoming json file to text in key-value pair which will be pipe separated. The schema in json files tends to change. So I can't write a program based on each value (which I tried earlier).
有人可以帮忙吗?
文件为:
[{"type_id":4102,"id":0,"product_name":"ATP:Endpoint","feature_name":"ATP:Endpoint",
"feature_ver":"2014.2.0","atpProtocol":"av","device_uid":"D00A9450ABD85ACD2B0125968FEABBF9","device_ip":"10.75.81.205","device_name":"10.75.81.205","file":{"name":"CSIDL_PROFILE\\desktop\\av ping\\malheur_34_0\\malheur_34_0 - copy (4)","folder":"CSIDL_PROFILE\\desktop\\aving\\malheur_34_0","sha2":"BC44F53958886E6B220CA6C634D78703220139
E968719A7459B859954CAA4A77","md5":null,"version":null,"size":null,"date_created":null,"date_modified":null,"date_accessed":null},"platform":{"processor":"x86 Family 6 Model 45 Stepping 7","country":"1","language":"English","system":"Windows 7 build 7601 Service Pack 1","scanner":"Symantec Endpoint Protection 12.1.3.0"},"scan":{"signatures_version":"20141112.002","technology":"AV Engine"}]
推荐答案
我已经编写了一些将json字符串解析为map/list对象的方法.
I have written some methods to parse json string into map/list object.
public static Map<String,Object> parseJSONObjectToMap(JSONObject jsonObject) throws JSONException{
Map<String, Object> mapData = new HashMap<String, Object>();
Iterator<String> keysItr = jsonObject.keys();
while(keysItr.hasNext()) {
String key = keysItr.next();
Object value = jsonObject.get(key);
if(value instanceof JSONArray) {
value = parseJSONArrayToList((JSONArray) value);
}else if(value instanceof JSONObject) {
value = parseJSONObjectToMap((JSONObject) value);
}
mapData.put(key, value);
}
return mapData;
}
public static List<Object> parseJSONArrayToList(JSONArray array) throws JSONException {
List<Object> list = new ArrayList<Object>();
for(int i = 0; i < array.length(); i++) {
Object value = array.get(i);
if(value instanceof JSONArray) {
value = parseJSONArrayToList((JSONArray) value);
}else if(value instanceof JSONObject) {
value = parseJSONObjectToMap((JSONObject) value);
}
list.add(value);
}
return list;
}
这篇关于Java代码将JSON转换为键值对中的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文