怎样从java后台获取json字符串并转换为json对象输出
例如:这是java后台等到的json字符串,{"122":"你好","145":"欢迎","123":"谢谢","45":"哈哈","23":"再见"},怎么传送到页面并...
例如:这是java后台等到的json字符串, {"122":"你好","145":"欢迎","123":"谢谢","45":"哈哈","23":"再见"} ,怎么传送到页面并获取到json字符串,然后转换为json对象,急用……,谢谢
展开
6个回答
展开全部
在model层
public List<Map<String,String>> query() throws SQLException
{
List<Map<String,String>> listmap=new ArrayList<Map<String,String>>();
Connection conn=null;
ResultSet rs=null;
String query="SELECT * FROM COURSE";
Statement st=null;
conn=Conn.getConnection();
st=conn.createStatement();
rs=st.executeQuery(query);
while(rs.next())
{
Map<String,String> map=new HashMap<String, String>();
map.put("coursetypeid", rs.getString("COURSE_TYPE_ID"));
map.put("coursename", rs.getString("COURSE_NAME"));
map.put("publish", rs.getString("PUBLISH"));
map.put("publishtime", rs.getString("PUBLISH_TIME"));
map.put("coursenumber", rs.getString("CHAPTER_NUMBER"));
map.put("courseid", rs.getString("COURSE_ID"));
map.put("coursedesc", rs.getString("COURSE_DESC"));
listmap.add(map);
}
conn.close();
return listmap;
}
控制层
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
ConImp c=new ConImp();
String json= c.QueryCourseInfo();
response.getWriter().write(json);
}
最后在页面通过转换获得并显示。
public List<Map<String,String>> query() throws SQLException
{
List<Map<String,String>> listmap=new ArrayList<Map<String,String>>();
Connection conn=null;
ResultSet rs=null;
String query="SELECT * FROM COURSE";
Statement st=null;
conn=Conn.getConnection();
st=conn.createStatement();
rs=st.executeQuery(query);
while(rs.next())
{
Map<String,String> map=new HashMap<String, String>();
map.put("coursetypeid", rs.getString("COURSE_TYPE_ID"));
map.put("coursename", rs.getString("COURSE_NAME"));
map.put("publish", rs.getString("PUBLISH"));
map.put("publishtime", rs.getString("PUBLISH_TIME"));
map.put("coursenumber", rs.getString("CHAPTER_NUMBER"));
map.put("courseid", rs.getString("COURSE_ID"));
map.put("coursedesc", rs.getString("COURSE_DESC"));
listmap.add(map);
}
conn.close();
return listmap;
}
控制层
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
ConImp c=new ConImp();
String json= c.QueryCourseInfo();
response.getWriter().write(json);
}
最后在页面通过转换获得并显示。
追问
我想知道页面上怎么获取呢?谢谢
追答
通过以下方式:
实际上从servlet传过来的是一个json字符串,需要将其转换一下(我用的是Flex作为页面显示)
var event:ResultEvent=new ResultEvent();
var rowdata:String=event.result.toString();
var array:Array=JSON.decode(rowdata) as Array;
Array这个类的形式类似于堆栈,堆栈知道吧,只要将其一个一个取出来就可以了
用Array[0]取就行了
如果用的是jsp作为页面显示
将控制层的 response.getWriter().write(json);
改为response.setAttribute("json",json);其中""中的名字随便取
在页面通过
var rowdata:String=request.getAttribute("json");
var array:Array=JSON.decode(rowdata) as Array;
再从Array中取就可以了
展开全部
使用json-lib.jar这个工具
public String getJson(Object obj){
JSONObject json;
json = JSONObject.fromObject(obj);
return json.toString();
}
使用jquery来处理json
//转换为json数据 datas可以用ajax从后台获取上面getJson中的数据
var jsonDatas = eval("(" + datas + ")");
//循环遍历数据
jQuery.each(jsonDatas, function(item) {
//循环
});
public String getJson(Object obj){
JSONObject json;
json = JSONObject.fromObject(obj);
return json.toString();
}
使用jquery来处理json
//转换为json数据 datas可以用ajax从后台获取上面getJson中的数据
var jsonDatas = eval("(" + datas + ")");
//循环遍历数据
jQuery.each(jsonDatas, function(item) {
//循环
});
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在前台,字符串和对象的差别不是很大,在前台把字符串赋给变量后,变量直接就成对象了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就目前来看,Google的GSON组件不错。至少我在开发中来看,是目前最棒的,而且支持 JDK5 的泛型。
地址:
User 用户类:
public class User {
@Expose
private Long id;
@Expose
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
// 测试 JavaBean 的转换
public class Test {
public static void main(String[] args) {
User user = new User();
user.setId(1001L);
user.setName("张三");
GsonBuilder builder = new GsonBuilder();
// 不转换没有 @Expose 注解的字段
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
String sUser = gson.toJson(user);
System.out.println(sUser);
//
// 将JSON字符串转换为 JavaBean
User user2 = gson.fromJson(sUser, User.class);
System.out.println(user2.getId() + ", " + user2.getName());
// 1001, 张三
}
}
// 测试 HashMap 的转换
public class MapTest {
public static void main(String[] args) {
User user1 = new User();
user1.setId(1001L);
user1.setName("张三");
User user2 = new User();
user2.setId(1002L);
user2.setName("李四");
Map<String, User> userMap = new HashMap<String, User>();
userMap.put("user1", user1);
userMap.put("user2", user2);
GsonBuilder builder = new GsonBuilder();
// 不转换没有 @Expose 注解的字段
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
String sUserMap = gson.toJson(user, new TypeToken<Map<String, User>>(){}.getType());
System.out.println(sUserMap);
// {"user1":,"user2":}
// 将JSON字符串转换为 HashMap
Map<String, User> userMap2 = (Map<String, User>)gson.fromJson(sUser, new TypeToken<HashMap<String, User>>(){}.getType());
System.out.println(userMap2.get("user1").getName());
// 张三
}
}
当然 GSON的JSON解析设置还不止这些,还有版本的注解、更改字段名称的注解等等。
上面给的网址上有具体的开发文档,和详细的例子。
如今 GSON 已被很多公司所采用,方便快捷。Google就是比较强大。
地址:
User 用户类:
public class User {
@Expose
private Long id;
@Expose
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
// 测试 JavaBean 的转换
public class Test {
public static void main(String[] args) {
User user = new User();
user.setId(1001L);
user.setName("张三");
GsonBuilder builder = new GsonBuilder();
// 不转换没有 @Expose 注解的字段
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
String sUser = gson.toJson(user);
System.out.println(sUser);
//
// 将JSON字符串转换为 JavaBean
User user2 = gson.fromJson(sUser, User.class);
System.out.println(user2.getId() + ", " + user2.getName());
// 1001, 张三
}
}
// 测试 HashMap 的转换
public class MapTest {
public static void main(String[] args) {
User user1 = new User();
user1.setId(1001L);
user1.setName("张三");
User user2 = new User();
user2.setId(1002L);
user2.setName("李四");
Map<String, User> userMap = new HashMap<String, User>();
userMap.put("user1", user1);
userMap.put("user2", user2);
GsonBuilder builder = new GsonBuilder();
// 不转换没有 @Expose 注解的字段
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
String sUserMap = gson.toJson(user, new TypeToken<Map<String, User>>(){}.getType());
System.out.println(sUserMap);
// {"user1":,"user2":}
// 将JSON字符串转换为 HashMap
Map<String, User> userMap2 = (Map<String, User>)gson.fromJson(sUser, new TypeToken<HashMap<String, User>>(){}.getType());
System.out.println(userMap2.get("user1").getName());
// 张三
}
}
当然 GSON的JSON解析设置还不止这些,还有版本的注解、更改字段名称的注解等等。
上面给的网址上有具体的开发文档,和详细的例子。
如今 GSON 已被很多公司所采用,方便快捷。Google就是比较强大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以用AJAX方法去获取,得到的直接是JSON对像
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询