【www.guakaob.com--意大利移民】
篇一:《json解析例子》
下面这个是自己修改别人的小例子,主要是加一些注释和讲解,这个例子主要是使用android进行json解析。
1 单数据{'singer':{'id':01,'name':'tom','gender':'男'}}
2 多个数据{"singers":[
3 {'id':02,'name':'tom','gender':'男'},
4 {'id':03,'name':'jerry,'gender':'男'},
5 {'id':04,'name':'jim,'gender':'男'},
6 {'id':05,'name':'lily,'gender':'女'}]}
下面的类主要是解析单个数据parseJson()和多个数据的方法parseJsonMulti(): 查看源码
打印?
01 public class JsonActivity extends Activity {
02 /** Called when the activity is first created. */
03 private TextView tvJson;
04 private Button btnJson;
05 private Button btnJsonMulti;
06 @Override
07 public void onCreate(Bundle savedInstanceState) {
08 super.onCreate(savedInstanceState);
09 setContentView(R.layout.main);
10 tvJson = (TextView) this.findViewById(R.id.tvJson);
11 btnJson = (Button) this.findViewById(R.id.btnJson);
12 btnJsonMulti = (Button) this.findViewById(R.id.btnJsonMulti);
13 btnJson.setOnClickListener(new View.OnClickListener() {
14 @Override
15 public void onClick(View v) {
16 // url
17 // String strUrl = "18 String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGER); 19 //获得返回的Json字符串
20 String strResult = connServerForResult(strUrl);
21 //解析Json字符串
22 parseJson(strResult);
23 }
24 });
25 btnJsonMulti.setOnClickListener(new View.OnClickListener() {
26 @Override
27 public void onClick(View v) {
28 String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGERS); 29 String strResult = connServerForResult(strUrl);
30 //获得多个Singer
31 parseJsonMulti(strResult);
32 }
33 });
34 }
35 private String connServerForResult(String strUrl) {
36 // HttpGet对象
37 HttpGet httpRequest = new HttpGet(strUrl);
38 String strResult = "";
39 try {
40 // HttpClient对象
41 HttpClient httpClient = new DefaultHttpClient();
42 // 获得HttpResponse对象
43 HttpResponse httpResponse = httpClient.execute(httpRequest);
44 if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 45 // 取得返回的数据
46 strResult = EntityUtils.toString(httpResponse.getEntity());
47 }
48 } catch (ClientProtocolException e) {
49 tvJson.setText("protocol error");
50 e.printStackTrace();
51 } catch (IOException e) {
52 tvJson.setText("IO error");
53 e.printStackTrace();
54 }
55 return strResult;
56 }
57 // 普通Json数据解析
58 private void parseJson(String strResult) {
59 try {
60 JSONObject jsonObj = new JSONObject(strResult).getJSONObject("singer"); 61 int id = jsonObj.getInt("id");
62 String name = jsonObj.getString("name");
63 String gender = jsonObj.getString("gender");
64 tvJson.setText("ID号"+id + ", 姓名:" + name + ",性别:" + gender); 65 } catch (JSONException e) {
66 System.out.println("Json parse error");
67 e.printStackTrace();
68 }
69 }
70 //解析多个数据的Json
71 private void parseJsonMulti(String strResult) {
72 try {
73 JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("singers"); 74 String s = "";
75 for(int i = 0; i < jsonObjs.length() ; i++){
76 JSONObject jsonObj = ((JSONObject)jsonObjs.opt(i))
77 .getJSONObject("singer");
78 int id = jsonObj.getInt("id");
79 String name = jsonObj.getString("name");
80 String gender = jsonObj.getString("gender");
81 s += "ID号"+id + ", 姓名:" + name + ",性别:" + gender+ "\n" ; 82 }
83 tvJson.setText(s);
84 } catch (JSONException e) {
85 System.out.println("Jsons parse error !");
86 e.printStackTrace();
87 }
88 }
89 }
篇二:《jQuery解析JSON》
jQuery 中使用 JSON
JSON 格式
json 是 Ajax 中使用频率最高的数据格式,在浏览器和服务器中之间的通讯可离不开它。 需要特别注意的是,在 JSON 中的属性名是需要使用引号引起来的。 jQuery 中使用 JSON在线解析json。
jQuery 是现在使用广泛的脚本库,那么,在 jQuery 中如何使用 JSON 呢?
1、本身就是JSON数据格式。就按JSON数据访问即可,如下例子: $(function(){
var people2={"name1":"a1","name2":"a2","name3":"a3"}; alert(people2.name3);
});在线解析json。
2、如果是JSON数据格式的字符串,则先要调用jQuery.parseJSON()把字符串转化为JSON数据格式。
<script type="text/javascript">
$(function(){
var people='{"name1":"a1","name2":"a2","name3":"a3"}'; var json= $.parseJSON(people);
alert(json.name2);
});
</script>
3、jquery-json 扩展库
这个库用来扩展 jQuery ,对于 JSON 的使用,扩展了两个方法。 toJSON 方法用来将一个普通的 JSON对象序列化为 JSON字符 串。 evalJSON 方法将一个 JSON字符串解析为一个普通的 JSON对象。 <!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="js/jquery-1.11.0.js"></script>
<script type="text/javascript" src="js/jquery.json-2.4.min.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
$(function(){
var thing = {'plugin':'jquery-json', 'version':'2.3'};
var encoded = $.toJSON(thing); // 把一个JSON转化为String
var name = $.evalJSON(encoded).plugin; // 把一个String解析为JSON alert(name);
});
</script>
</html> 4、$.getJSON()
获取JSON数据,在jQuery中有一个简单的方法 $.getJSON() 可以实现。
下面引用的是官方API对$.getJSON()的说明:
jQuery.getJSON( url, [data,] [success(data, textStatus, jqXHR)] ) url A string containing the URL to which the request is sent.
Data A map or string that is sent to the server with the request.
success(data, textStatus, jqXHR) A callback function that is executed if the request succeeds.
$.each()是用来在回调函数中解析JSON数据的方法,下面是官方文档:
jQuery.each(collection,callback(indexInArray, valueOfElement) )
collection:The object or array to iterate over.
callback(indexInArray, valueOfElement)The function that will be executed on every object.
$.each()方法接受两个参数,第一个是需要遍历的对象集合(JSON对象集合),第二个是用来遍历的方法,这个方法又接受两个参数,第一个是遍历的index,第二个是当前遍历的值。
function loadInfo() {
$.getJSON("loadInfo", function(data) {在线解析json。
$("#info").html("");//清空info内容
$.each(data.comments, function(i, item) {
$("#info").append(
"<div>" + item.id + "</div>" +
"<div>" + item.nickname + "</div>" +
"<div>" + item.content + "</div><hr/>");
});
});
}
示范源代码:
项目结构图:
Index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page">
<!--
-->
<script type="text/javascript" src="js/jquery-1.11.0.js"></script></head>
<body>
<div id="info"></div>
</body> <script type="text/javascript">
$(function(){
alert("OK");
$.getJSON("json", function(data) {
$("#info").html("");//清空info内容在线解析json。
$.each(data.comments, function(i, item) {
$("#info").append(
"<div>" + item.id + "</div>" +
"<div>" + item.nickname + "</div>" +
"<div>" + item.content + "</div><hr/>");
});
});
});
</script>
</html>
jsonServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
@WebServlet("/json")
public class jsonServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("OK");
resp.setCharacterEncoding("utf-8");
String jsonStr="{'comments':[{'content':'很好!','id':1,'nickname':'nake'}, {'content':'very good!','id':2,'nickname':'nice'}]}";
JSONObject json=JSONObject.fromObject(jsonStr);
PrintWriter out=resp.getWriter();
out.print(json);
out.flush();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
5、jquery解析map数据
$.each()遍历Map的时候,function()中的参数是key和value
项目结构图:
篇三:《JSON解析详细文档》
JSON 的含义?
JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON与XML具有相同的特性,例如易于人编写和阅读,易于机器生成和解析。但是JSON比XML数据传输的有效性要高出很多。JSON完全独立与编程语言,使用文本格式保存。
JSON数据有两种结构:
Name-Value 对构成的集合,类似于Java中的Map。 Value的有序列表,类似于Java中的Array。
一个JSON格式的数据示例: {
"Name": "Apple",
"Expiry": "2007/10/11 13:54", "Price": 3.99, "Sizes": [ "Small", "Medium", "Large" ] }
更多关于JSON数据格式的说明参看JSON官方网站:/retype/zoom/f4f64fd1b14e852458fb572c?pn=5&x=0&y=1586&raww=14&rawh=15&o=png_6_0_0_213_608_16_17_893.25_1263.375&type=pic&aimh=15&md5sum=9947825c5cc6765ae336e9aa6fe51ad4&sign=b0a6b02257&zoom=&png=2712-6841&jpg=0-0" target="_blank">http://www.guakaob.com/yimin/332040.html
上一篇:不但……还造句
下一篇:女人喜欢和什么样男人做爱