
将一个String 形式的json转化成Map的Java程序如下:
import javautilHashMap;import javautilIterator;
import javautilMap;
import orgjsonJSONObject;
public class FFF {
public static void main(String[] args) {
String s="{\"a\":\"1\",\"b\":2,\"c\":\"2016-5\"}";
JSONObject jso=new JSONObject(s);
Map<String,Object> m=new HashMap<String,Object>();
Iterator it = jsokeys();
while (ithasNext()) {
String key = (String) itnext();
Object value = jsoget(key);
mput(key, value);
}
Systemoutprintln(mtoString());
}
}
运行结果:
{a=1, b=2, c=2016-5}
好像没有什么特别的办法,可能是我才疏学浅,
我知道的两种方式:
map是键值对存在,那么类型都是固定的,我们可以再申请个map<String ,String>遍历替换原来的map再转换成json字符串
字符串替换,用正则添加双引号:
public void testJson(){Map<String,Integer> map = new HashMap<String,Integer>();
mapput("aaa", 111);
String json = JSONtoJSONString(map);
String json1 = jsonreplaceAll(":", ":\"");
json1 = json1replaceAll("}", "\"}");
Systemoutprintln(json);
Systemoutprintln(json1);
}
package jsonToMap;
import javautilList;
import javautilMap;
import javautilMapEntry;
import netsfjsonJSONArray;
import netsfjsonJSONObject;
/
说明 json字符串 转成 Map/List
/
public class JsonToMap {
public static void main(String[] args) {
//JSONArray
String jsonArrayData="[{\"a1\":\"12\",\"b1\":\"112\",\"c1\":\"132\",\"d1\":\"134\"},{\"a2\":\"12\",\"b2\":\"112\",\"c2\":\"132\",\"d2\":\"134\"},{\"a3\":\"12\",\"b3\":\"112\",\"c3\":\"132\",\"d3\":\"134\"}]";
JSONArray jsonArray = JSONArrayfromObject(jsonArrayData);
List<Map<String,Object>> mapListJson = (List)jsonArray;
for (int i = 0; i < mapListJsonsize(); i++) {
Map<String,Object> obj=mapListJsonget(i);
for(Entry<String,Object> entry : objentrySet()){
String strkey1 = entrygetKey();
Object strval1 = entrygetValue();
Systemoutprintln("KEY:"+strkey1+" --> Value:"+strval1+"\n");
}
}
// JSONObject
String jsonObjectData="{\"data1\":{\"a1\":\"12\",\"b1\":\"112\",\"c1\":\"132\",\"d1\":\"134\"},\"data2\":{\"a2\":\"12\",\"b2\":\"112\",\"c2\":\"132\",\"d2\":\"134\"},\"data3\":{\"a3\":\"12\",\"b3\":\"112\",\"c3\":\"132\",\"d3\":\"134\"}}";
JSONObject jsonObject = JSONObjectfromObject(jsonObjectData);
Map<String, Object> mapJson = JSONObjectfromObject(jsonObject);
for(Entry<String,Object> entry : mapJsonentrySet()){
Object strval1 = entrygetValue();
JSONObject jsonObjectStrval1 = JSONObjectfromObject(strval1);
Map<String, Object> mapJsonObjectStrval1 = JSONObjectfromObject(jsonObjectStrval1);
Systemoutprintln("KEY:"+entrygetKey()+" --> Value:"+entrygetValue()+"\n");
for(Entry<String, Object> entry1:mapJsonObjectStrval1entrySet()){
Systemoutprintln("KEY:"+entry1getKey()+" --> Value:"+entry1getValue()+"\n");
}
}
}
}
可以这样做,返回类型为html格式,把集合显示做成单个页面(listjsp),用div包含该页面,后台跳转到该页面,把div的html替换成返回来的html,页面:
<div id="list_div">
<jsp:include="listjsp">
</div>
var submitUrl = "demo!getListshtmltmp="+(new Date()getTime;
$ajax({
url: submitUrl,
type: "POST",
async: false,
cache: false,
globle: false,
dataType: "html",
beforeSend: function(XML>
首先,你先确认你的字符串是否是json格式的,如果是json格式,那你可以使用Gsonjar或json-lib-xx-jdkjar两个包来自动解析解析。
使用Gson更简单些,只需要导入一个包就可以,但是他如果使用Object解析到int型的话或自动转成double型,需要定义一个准确的类来解析,不能直接使用Object。示例:
Gson gson = new Gson();
Map<String, Object> map = new HashMap<String, Object>();
map = gsonfromJson(str, mapgetClass());
GSONjar包的下载地址:>
使用json-lib包的话需要导入更多的包,需要额外导入commons-langjar、ezmorph-104jar、commons-logging-111jar、commons-collectionsjar、commons-beanutilsjar这5个包。解析示例如下:
JSONObject jb = JSONObjectfromObject(str);
Map<String, Object> map = (Map<String, Object>)jb;
如果你的字符串不是json格式,那你就需要自己使用split分割字符串,例如:
String str = "color:red|font:yahei|width:800|height:300";
String[] strs = strsplit("\\|");
Map<String, String> m = new HashMap<String, String>();
for(String s:strs){
String[] ms = ssplit(":");
mput(ms[0], ms[1]);
}
JSONObject json = JSONObejctfromObject(map)
上面的方法转出来的结果为map的keytoString()和valuetoString() 的结果对。
SomeClass 是你的自定义类,你没有重写toString方法,默认调用的是Object类的toString方法。
你重写下SomeClass 的toString方法,输出你想要的结果,然后,转出来的JSON就不再是内存地址了
以上就是关于Java 将一个String 形式的json转化成Map,比如"{\"a\":\"1\",\"b\全部的内容,包括:Java 将一个String 形式的json转化成Map,比如"{\"a\":\"1\",\"b\、java中将map转成json时,如何将map中的整型数字在转成json后,变成字符串,而不是整型。、JSON字符串怎么转List和map集合等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)