将一段josn格式的字符串转化为Map

j_coffees 2010-12-08 09:31:18
现在有一段josn格式的字符串,str="{JAVA:{ONEQUERY:FGID},FLEX:{JL:[{1:请选择,2:-1}],YMJL:{FIND:ID+MBID,ACTION:RELOADING}} }";想让其转化为map格式的。希望高手能贴下转化的代码。先谢谢了。
在网上找个下,需要导入josn的工具包吗?
...全文
4323 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdfwefawiefsd 2010-12-08
  • 打赏
  • 举报
回复
有些框架里面包含json解析的。。。。。。。。
Gingk0 2010-12-08
  • 打赏
  • 举报
回复
Nutz.Json make you happy with Json www.zozoh.com
Nutz.Json
Book
作者: mastung@gmail.com
日期: Jan 2009
前言:
为什么还要有一个JSON的转换包?
又一个重新造轮子的问题. 毕竟每造的轮子都不是一样的. 都会带来创新, 都会引发思考.
我们希望nutz.json能做到, 最小, 最快, 最好用.
目标:
• 通过简单的toJson 和fromJson能完成绝大部分的互转工作, 不再需要额外的配置.
• 能够提供模板, 容易的更改Json的展现, 和反向的Java Object生成
• 适用于任何的Java对象, 包括基本类型
• 支持JDK1.5+
使用:
-简单开始
Java转换成Json:
Json.toJson(6.5); ===> 输出: 6.5
Json.toJson("json"); ===> 输出: "json"
Json.toJson(new int[0]); ===> 输出: []
Json转换成Java:
int intValue = Json.fromJson(Lang.inr("65"));
float floatValue = Json.fromJson(float.class, Lang.inr("65"));
int[] intArray = Json.fromJson(int[].class, Lang.inr("[65]"));
-对Map的操作
Java转换成Json:
Map<String,Object> map = new HashMap<String, Object>();
map.put("name", "Peter");
map.put("age", 21);
map.put("friends", null);
String result = Json.toJson(map);
这个时候会输出成:
{
age :21,
name :"Peter"
}
会自动忽略掉值为空的字段.
Json转换成Java:
String json = "{age :21,name :\"Peter\"}";
map = Json.fromJson(HashMap.class, Lang.inr(json));
-对Bean的操作
设计这样的类:
public static class UserObject {
public static enum Sex {
Male, Female
};
private String name;
private int age;
private Sex sex;
private Date birthday;
private UserObject bestFriend;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Sex getSex() {
return sex;
}
public void setSex(Sex sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public UserObject getBestFriend() {
return bestFriend;
}
public void setBestFriend(UserObject bestFriend) {
this.bestFriend = bestFriend;
}
}
Java转换成Json:
UserObject peter = new UserObject();
peter.setName("Peter");
peter.setAge(22);
peter.setSex(UserObject.Sex.Male);
String result = Json.toJson(peter);
这个时候会输出成:
{
name :"Peter",
age :22,
sex :"Male"
}
会自动忽略掉值没有赋值的字段birthday和bestFriend.
更进一步, 我们来看看关联的情况, 在以上代码的基础上面:
amy.setName("Amy");
amy.setAge(21);
amy.setSex(UserObject.Sex.Female);
amy.setBirthday(new Date());
amy.setBestFriend(peter);
result = Json.toJson(amy);
这个时候会输出成:
{
name :"Amy",
age :21,
sex :"Female",
birthday :"2009-04-11 21:28:59",
bestFriend :{
name :"Peter",
age :22,
sex :"Male"
}
}
关联对象的关联会被自动探知.
注意:如果关联里面存在循环关联,在内部对象的关联属性里面会被置空. 如:
peter.setBestFriend(amy);
这个时候输出:
{
name :"Amy",
age :21,
sex :"Female",
birthday :"2009-04-11 21:28:59",
bestFriend :{
name :"Peter",
age :22,
sex :"Male",
bestFriend :null
}
}
-更进一步
还可以定制JsonFormat的属性来控制输出内容. 如是否忽略null字段, 是否压缩等等.
JsonFormat默认提供了3种初始对象:
compact() : 压缩并忽略null字段
nice() : 不压缩;字段名不加引号;忽略null字段
clear() : 不压缩;字段名加引号;不忽略null字段
zn85600301 2010-12-08
  • 打赏
  • 举报
回复
json-lib-2.1-jdk15.jar 包里面有JSON转格式的
yyy521fyy 2010-12-08
  • 打赏
  • 举报
回复
你这个都回答了?
你要问什么问她啊?
j_coffees 2010-12-08
  • 打赏
  • 举报
回复
没人回答,挽救下自己 - -
j_coffees 2010-12-08
  • 打赏
  • 举报
回复
找了个例子,看着不错,要导入json的jar包:

/**
* 把json对象串转换成map对象
* @param jsonObjStr e.g. {'name':'get','int':1,'double',1.1,'null':null}
* @return Map
*/
public static Map getMapFromJsonObjStr(String jsonObjStr) {
JSONObject jsonObject = JSONObject.fromObject(jsonObjStr);

Map map = new HashMap();
for (Iterator iter = jsonObject.keys(); iter.hasNext();) {
String key = (String) iter.next();
map.put(key, jsonObject.get(key));
}
return map;
}

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧