搜档网
当前位置:搜档网 › json数据的存储和读写

json数据的存储和读写

json数据的存储和读写
json数据的存储和读写

android中JSON数据的读写方法

博客分类:

android

[/color]用习惯了XML,总觉得JSON可读性又差,也不好保存等等,到真正接触了,才发现在android上,JSON就像亲儿子一样容易管教。

还是先看数据源,数据源我采用的是一系列的村民集合,村民的属性如下。

Java代码

1public class Folk {

2String name;

3String career;

4String age;

5int salary;

6boolean sex;

引用

先看写数据,数据是我假定一个村的数据,由一个arraylist填装。通过一个for循环很容易取出了arraylist中的每个对象以及其数据,每个对象,即村民都可以生成一个JSONobject,这里json和java面向对象的思想是多么吻合。prey load!

其次还有一个JSONarray对象,就是一个JSON自己的Arraylist。好比我们把自己的对象转存到一个Json对象中,从我们的Arraylist中取出来,再装进一个Json的Arraylist。

好比我把一个个村名从一辆大卡车上接下来(从自己的ArrayList取),把他们穿戴整齐了

(装进Json对象中),再挥挥手把他们送上火星游的太空飞船(jsonArray),临走我在飞船上挂上了village的标签,火星上的同事会知道我的村民坐的是哪艘船。所有工序完成。

看代码

Java代码

7public class MyJsonWriter {

8ArrayList folks;

9File saveFile;

10public MyJsonWriter(ArrayList folks){

11this.folks=folks;

12}

13

14public void setFilePath(String filepath){

15saveFile=new File(filepath);

16try {

17saveFile.createNewFile();

18} catch (IOException e) {

19// TODO Auto-generated catch block

20 e.printStackTrace();

21}

22}

23

24public String getJsonData(){

25String jsonData = null;

26// String jsonData=new

JSONStringer().object().key("village").value("abc").endObject().toString(); 27try {

28StringBuilder builder=new StringBuilder();

29ArrayList folksData=new ArrayList(); 30JSONArray array=new JSONArray();

31for(int i=0;i

32Folk folk=folks.get(i);

33JSONObject jsonObject=new JSONObject();

34jsonObject.put("name", folk.getName());

35jsonObject.put("sex", folk.isSex()?"male":"female"); 36jsonObject.put("age", folk.getAge());

37jsonObject.put("career", folk.getCareer());

38jsonObject.put("salary", folk.getSalary());

39folksData.add(jsonObject.toString());

40array.put(jsonObject);

41}

42// JSONArray jsonArray=new JSONArray(folksData);

43int len = array.length();

44jsonData=new

JSONStringer().object().key("vallage").value(array).endObject().toString();

45System.out.println(jsonData);

46writeData(jsonData);

47} catch (JSONException e) {

48// TODO Auto-generated catch block

49 e.printStackTrace();

50}

51return jsonData;

52}

53

54private void writeData(String jsonData) {

55// TODO Auto-generated method stub

56try {

57BufferedReader reader=new BufferedReader(new

StringReader(jsonData));

58BufferedWriter writer=new BufferedWriter(new FileWriter(saveFile)); 59int len=0;

60char[] buffer=new char[1024];

61while((len=reader.read(buffer))!=-1){

62writer.write(buffer, 0, len);

63}

64writer.flush();

65writer.close();

66reader.close();

67} catch (IOException e) {

68// TODO Auto-generated catch block

69 e.printStackTrace();

70}

71}

72}

引用

愉快的时间总是过的特别快,村民们要回家了。这时候来了一辆宇宙飞船,上面挂着我临走时贴上的标签,看来是相亲门回家了。(得到了JSONarray的对象)。打开舱门,乡亲们陆陆续续的走了下来,我为每个人做了次详细的检查,保证不会让奇怪的生物混进来,乡亲们神清气爽的重回地球表面。(循环中取出JSONArray中的JSON对象,并装填到我们自己的对象中,并存入arraylist)

上代码

Java代码

73public class MyJsonReader {

74String jsonData;

75// ArrayList folks;

76public MyJsonReader(String jsonData){

77this.jsonData=jsonData;

78}

79

80public ArrayList getJsonData(){

81ArrayList folks=new ArrayList();

82try {

83JSONObject jsonObject=new JSONObject(jsonData);

84JSONArray jsonArray=jsonObject.getJSONArray("vallage");

85int len = jsonArray.length();

86for(int i=0;i

87JSONObject json=jsonArray.getJSONObject(i);

88Folk folk=new Folk();

89folk.setName(json.optString("name"));

90folk.setAge(json.optString("age"));

91folk.setCareer(json.optString("career"));

92folk.setSalary(json.optInt("salary"));

93folk.setSex(json.optString("sex").equals("male")?true:false); 94folks.add(folk);

95}

96} catch (JSONException e) {

97// TODO Auto-generated catch block

98 e.printStackTrace();

99}

100return folks;

101}

102}

JSON的读写在android很简单,出奇的简单,让我这个准备花一个周五下午的人后面变得十分蛋疼的来写日志。

总的来说还有些小地方需要注意

JSONArray中添加json对象的方法不是用的add而是put

Java代码

103jsonData=new

JSONStringer().object().key("vallage").value(array).endObject().toString();

.object和endObject成对出现这很像XML写里面的starttag和endtag 最后我将一些的村民数据做为了一个village json对象的value,真的把这个Json对象幻想成了一艘宇宙飞船。。。

package de.vogella.android.twitter.json;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.StatusLine;

import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONArray;

import org.json.JSONObject;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

public class ParseJSON extends Activity {

/** Called when the activity is first created. */ @Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(https://www.sodocs.net/doc/d139891.html,yout.main);

String readTwitterFeed = readTwitterFeed();

try {

JSONArray jsonArray = new JSONArray(readTwitterFeed);

Log.i(ParseJSON.class.getName(),

"Number of entries " + jsonArray.length());

for (int i = 0; i < jsonArray.length(); i++) {

JSONObject jsonObject = jsonArray.getJSONObject(i);

Log.i(ParseJSON.class.getName(),

jsonObject.getString("text"));

}

} catch (Exception e) {

e.printStackTrace();

}

}

public String readTwitterFeed() {//读取json数据

StringBuilder builder = new StringBuilder();

HttpClient client = new DefaultHttpClient();

HttpGet httpGet = new HttpGet(

"https://www.sodocs.net/doc/d139891.html,/statuses/user_timeline/vogella.json");

try {

HttpResponse response = client.execute(httpGet);

StatusLine statusLine = response.getStatusLine();

int statusCode = statusLine.getStatusCode();

if (statusCode == 200) {

HttpEntity entity = response.getEntity();

InputStream content = entity.getContent();

BufferedReader reader = new BufferedReader(

new InputStreamReader(content));

String line;

while ((line = reader.readLine()) != null) {

builder.append(line);

}

} else {

Log.e(ParseJSON.class.toString(), "Failed to download file");

}

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return builder.toString();

}

}

生成JSON:

public void writeJSON() {

JSONObject object = new JSONObject();

try {

object.put("name", "Jack Hack");

object.put("score", new Integer(200));

object.put("current", new Double(152.32)); object.put("nickname", "Hacker");

} catch (JSONException e) {

e.printStackTrace();

}

System.out.println(object);

}

Java获取http和https协议返回的json数据

Java获取http和https协议返回的json数据 现在很多公司都是将数据返回一个json,而且很多第三方接口都是返回json数据,而且还需要使用到http协议,http协议是属于为加密的协议,而https协议需要SSL证书,https是将用户返回的信息加密处理,然而我们要获取这些数据,就需要引入SSL证书。现在我提供两个方法,帮助各位如何获取http和https返回的数据。 获取http协议的数据的方法,如下: public static JSONObject httpRequest(String requestUrl, String requestMethod) { JSONObject jsonObject = null; StringBuffer buffer = new StringBuffer(); try { URL url = new URL(requestUrl); // http协议传输 HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); httpUrlConn.setDoOutput(true); httpUrlConn.setDoInput(true); httpUrlConn.setUseCaches(false); // 设置请求方式(GET/POST)

httpUrlConn.setRequestMethod(requestMethod); if ("GET".equalsIgnoreCase(requestMethod)) httpUrlConn.connect(); // 将返回的输入流转换成字符串 InputStream inputStream = httpUrlConn.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String str = null; while ((str = bufferedReader.readLine()) != null) { buffer.append(str); } bufferedReader.close(); inputStreamReader.close(); // 释放资源 inputStream.close(); inputStream = null; httpUrlConn.disconnect(); jsonObject =

JSON 数据格式

JSON 数据格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。 基础结构 JSON建构于两种结构: 1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。 2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 基础示例 简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。 表示名称 / 值对 按照最简单的形式,可以用下面这样的 JSON 表示 "名称 / 值对" :{ "firstName": "Brett" } 这个示例非常基本,而且实际上比等效的纯文本 "名称 / 值对" 占用更多的空间:firstName=Brett 但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的记录,比如: { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }

js读取解析JSON数据

js读取解析JSON数据 各位读友大家好!你有你的木棉,我有我的文章,为了你的木棉,应读我的文章!若为比翼双飞鸟,定是人间有情人!若读此篇优秀文,必成天上比翼鸟! js读取解析JSON数据js读取解析JSON数据JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是JavaScript 原生格式,这意味着在JavaScript 中处理JSON数据不须要任何特殊的API 或工具包。本文主要是对JS操作JSON的要领做下总结。在JSON中,有两种结构:对象和数组。1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间运用“,”(逗号)分隔。名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:var o={“xlid”:”cxh”,”xldigitid”:123456,”topscore”:2000,”topplaytime”:”2009-08-20”};2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用“,”(逗号)分隔。例如:var jsonranklist=[{“xlid”:”cxh”,”xldigitid”:123456,”topscore”:2000,”top playtime”:”2009-08-20”},{“xlid”:”zd”,”xldigitid”:123456,”topscore ”:1500,”topplaytime”:”2009-11-20”}];为了方便地处理JSON数据,JSON提供了json.js包,下载地址:https://www.sodocs.net/doc/d139891.html,/json.js在

androidjson解析及简单例子(转载).

JSON 的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持,从而可以在不同平台间进行数据交换。 JSON 采用兼容性很高的文本格式,同时也具备类似于 C 语言体系的行为。– https://www.sodocs.net/doc/d139891.html, JSON Vs XML 1.JSON 和 XML 的数据可读性基本相同 2.JSON 和 XML 同样拥有丰富的解析手段 3.JSON 相对于 XML 来讲,数据的体积小 4.JSON 与 JavaScript 的交互更加方便 5.JSON 对数据的描述性比 XML 较差 6.JSON 的速度要远远快于 XML android2.3提供的 json 解析类 android 的 json 解析部分都在包 org.json 下,主要有以下几个类: JSONObject :可以看作是一个 json 对象 , 这是系统中有关 JSON 定义的基本单元, 其包含一对儿 (Key/Value数值。它对外部 (External:应用 toString(方法输出的数值调用的响应体现为一个标准的字符串(例如:{"JSON": "Hello, World"},最外被大括号包裹,其中的 Key 和 Value 被冒号 ":"分隔。其对于内部 (Internal行为的操作格式略微,例如:初始化一个 JSONObject 实例,引用内部的 put(方法添加数值:new JSONObject(.put("JSON", "Hello, World!", 在 Key 和 Value 之间是以逗号 "," 分隔。Value 的类型包括:Boolean 、 JSONArray 、 JSONObject 、 Number 、 String 或者默认值 JSONObject.NULL object 。

Jayrock.Json读取json数据(net)

1:首先下载Jayrock.Json.dll文件,放入bin目录中;地址:https://www.sodocs.net/doc/d139891.html,/down/Jayrock.Json.dll_356701.html 2:如下json格式: using Jayrock.Json; string jsonWriter = "{'games':[{'username':'is_51315925', 'player_level':'2'},{'username':'is_61315925', 'player_level':'3'}]}"; JsonReader jsonRead = new JsonTextReader(new StringReader(jsonWriter)); JsonObject jsonObj = new JsonObject(); //将文本的jsonWriter数据转变成一个对象 jsonObj.Import(jsonRead); //获取games内容转化成JsonArray对象: JsonArray gameArray = jsonObj["games"] as JsonArray; //两个数组{},循环获取每个数组中的“username”的值 foreach (JsonObject o in gameArray) { string c = o["username"].ToString(); } 3:如下json格式 string strJsonText = @"{"cacheCount":1,"count":"34","slice":"5, 5","list": [1001598,1001601,1001605,1001609,1001612],"page":1,"error":200}"; JsonReader reader = new JsonTextReader(new StringReader(strJsonText)); JsonObject jsonObj = new JsonObject(); jsonObj.Import(reader); 这样,就将一个文本的JSon数据转变成一个对象,如果要获取 count 的值,则可以这样 string count = jsonObj["count"].ToString(); 但是有个问题,list 是一个数组,该如何获取呢?不用急,Jayrock已经为我们准备好了,来看 using (JsonTextReader textReader = new JsonTextReader(new StringReader(jsonObj["list"].ToString()))) { while (textReader.Read()) { if (!string.IsNullOrEmpty(textReader.Text)) { Response.Write(textReader.Text);

json数据解析

这个方法是参考 https://www.sodocs.net/doc/d139891.html,/networking-database-problems-f29/connecting-to-mysql-database-t50063.html 国外老外的一些经验所得。这里我总结一下要点: 1、需要一个mysql数据库,这个怎么搞出来,大家觉得有问题先学学mysql再回来接着看。 2、需要一个php操作mysql数据库的脚本,上传到服务器地址 3、需要修改Android的manifest文件,入网许可!! 一、首先我们假如已经把MYSQL数据库建立好了,写一个PHP操作文件上传到服务器访问地址 [php]view plaincopyprint? 1 稍微解析一下上面PHP内容, [php]view plaincopyprint? 10$q=mysql_query("SELECT * FROM user_info WHERE uName ='".$_REQUEST['name']."'"); 这句当中 [php]view plaincopyprint? 11.$_REQUEST['name']. 就表示要从android里面输入到这里的一个键值对的值,id为name,下面我们 写Android程序会再说明一下。 [php]view plaincopyprint?

Highcharts获取json数据展现范文

实际上很多时候图表展现的数据都是从服务器端获取,现在来做一个简单的异步获取json数据的例子。 服务器端用Servlet3.0实现,JSP页面通过jquery异步请求json数据提供给Highcharts 展现。 1、用一个实体类封装要展现的信息 package cn.luxh.app.entity; public class BrowserShare { //浏览器名称 private String name; //份额 private float share; public BrowserShare(String name, float share) { super(); https://www.sodocs.net/doc/d139891.html, = name; this.share = share; } public float getShare() { return share; } public void setShare(float share) { this.share = share; } public String getName() { return name; } public void setName(String name) { https://www.sodocs.net/doc/d139891.html, = name; } }

2、处理请求的Servlet package cn.luxh.app.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; 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 com.google.gson.Gson; import cn.luxh.app.entity.BrowserShare; @WebServlet(name="dataServlet",value="/servlet/dataServlet") public class DataServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("application/json;charset=utf-8"); List resultList = getData(); Gson gson = new Gson(); String result = gson.toJson(resultList);//转成json数据 PrintWriter out = response.getWriter(); out.write(result); out.flush(); out.close(); } /** * 获取数据 */ private List getData() { List resultList = new ArrayList(); resultList.add(new BrowserShare("Chrome",18.55F));

JSON_API说明

自定义JSON数据格式详解:手机APP侧使用说明 Requset ? { “KeyId” : “string” } 此数据格式,为客户端请求与服务器建立交互密钥连接使用,使用明文传输,不需要加密。KeyId : 为插在设备上面的标识Id号码 获取KeyId需要调用的函数依次如下: Java_cpk_com_jni_TCard_Open 打开外接TF卡设备 (JNIEnv *jenv, jclass jc, jint pinType, jbyteArray jpin, jint pinLen) 输入参数如下: pinType : 1 超级用户 2 普通用户使用普通用户打开设备 jpin : 8个0x31 pinLen : 8 JNICALL Java_cpk_com_jni_TCard_GetCertId (JNIEnv *jenv, jclass jc, jint keyId) 输入参数如下: keyId的序列号:统一传入0x00 返回值:KeyId号码 调用如上两个函数就可以获取到外接TF卡设备的KeyId号码 Request_result ? { “Public_key” : “string”, “Private_key” : “string” } 当客户端发送Request请求过来时候,服务器会生成一个随机数a,利用随机数a作为标识Id,生成随机数a的公私钥对,Public_key字段为随机数a的公钥,Private_key字段为随机数a的私钥,此数据通信的时候,使用客户端发送过来的标识Id的公钥加密。 解密上面格式的数据使用如下函数: JNIEXPORT jbyteArray JNICALL Java_cpk_com_jni_TCard_Decrypt (JNIEnv *jenv, jclass jc, jint keyId, jbyteArray jcipher, jint cipherLen) 输入参数解释如下: keyId: 序列号统一传入0x00 jcipher: 从服务器获取到的密文数据 cipherLen: 密文数据的长度

用jquery解析JSON数据的方法

用jquery解析JSON数据的方法 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。这里首先给出JSON字符串集, 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery 请求后返回的结果是json对象,这里考虑的都是服务器返回JSON 形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。 这里首先给出JSON字符串集,字符串集如下: 代码如下: var data=" { root: [ {name:'1',value:'0'}, {name:'6101',value:'北京市'}, {name:'6102',value:'天津市'}, {name:'6103',value:'上海市'}, {name:'6104',value:'重庆市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'汉中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'} ] }"; 这里以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。 1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明: var dataObj=eval("("+data+")");//转换为json对象 alert(dataObj.root.length);//输出root的子对象数量 $.each(dataObj.root,fucntion(idx,item){ if(idx==0){ return true; }

JSON数据格式

JSON数据格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格 式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。 基础结构 JSON建构于两种结构: 1. “名称/值”对的集合(A collection of name/value pairs )。不同的语言 中,它被理解为对象(object),记录(record),结构(struct ),字典(dictionary ),哈希表(hash table ),有键列表(keyed list ),或者关联数组 (associative array )。 2. 值的有序列表(An ordered list of values )。在大部分语言中,它被理解为数组(array )。 基础示例 简单地说,JSO N可以将JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且JSON可以表示比"名称/值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。 表示名称/值对 按照最简单的形式,可以用下面这样的JSON表示"名称/值对": { "firstName": "Brett" } 这个示例非常基本,而且实际上比等效的纯文本"名称/值对"占用更多的空 [间:firstName=Brett 但是,当将多个"名称/值对"串在一起时,JSON就会体现出它的价值了。首先, 可以创建包含多个"名称/值对"的记录,比如: { "firstName": "Brett", "lastName":"McLaughli n", "email": "aaaa" } 从语法方面来看,这与"名称/值对"相比并没有很大的优势,但是在这种情况下JSON更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。

JS解析JSON数据及取值的用法

JS解析JSON数据及取值的一些用法 <%@ page contentType="text/html;charset=GBK" language="java" %> JS解析JSON数据

JS解析JSON数据测试界面

Json接口文档

文档 [ { [ID](int):编号, [NodeName](string):节点名称 [NodeNo](int):节点编号, [ProductID](int):产品编号, [Remark](string):备注, [GatewayNo](string):网关编号, [AreaID](int):区域编号, [X]:, [Y]:, [Longitude](string):经度, [Latitude](string):纬度, [Extern](string):备用字段, [Type](string):类型, [Installation](string):安装地点, [Color](string):颜色, [CropsNames](string):作物, [GreenhousesID](int):大棚编号 }, .... ] [ { [SENSOR_ID](int):传感器编号, [SENSOR_SHOW_NAME](string):传感器名称, [PORT_SHOW_NAME](string):传感器显示名称,

[UNIT](string):单位, [Accuracy](string):准确性, [ParentID](int):父节点编号, [Code](string):代码, [Level](int):层级, [Color](string):颜色 }, …. ] [ { [ID](int):编号, [SRC_NAME](string):节点名称, [TIME_STAMP](datetime):时间, [NODE_ID](int):节点编号, [CHANNEL](int):, [SENSOR_ID](int):传感器编号, [DATA](double):数值, [LIVE](int):层级 }, .... ] [ { [节点编号](int):, [安装地点](string):, [更新时间](datetime):, [湿度](string):, [温度](string):, [气压](string):, [降雨量](string):, [风向](string):,

java处理JSON格式数据的通用类

java处理JSON格式数据的通用类-每天进步一点点-我的搜狐 一个java处理JSON格式数据的通用类 分类:JSON 2013-04-27 18:00 阅读(19)评论(0) 原始的json方法 response.setContentType("text/html;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); JSONObject json = new JSONObject();//用于存放最后返回的json变量JSONArray jsonal = new JSONArray();//用于存放json的列表 JSONObject jsonobj = new JSONObject();//用于存放列表中的单条数据 try{ for(int i=0;i<10;i++){ //把列表中的每一列的每个值赋给jsonobj jsonobj.put("id", "编号"); jsonobj.put("title", "标题"); jsonobj.put("author", "作者"); jsonobj.put("time", "时间"); //把已经赋值过的jsonobj(即单条数据)放到列表里 jsonal.add(jsonobj); } json.put("list", jsonal);//把这个列表放到json里面用于最后返回输出 }catch(Exception e){ e.printStackTrace(); } response.getWriter().write(json.toString());//把json值输出返回到页面上这里是字符串的形式我前台是用js接收来解析的 别人写的工具类:

JSON教程

JSON是什么? JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSO N与XML具有相同的特性,例如易于人编写和阅读,易于机器生成和解析。但是JSON比XML数据传输的有效性要高出很多。JSON完全独立与编程语言,使用文本格式保存。 JSON数据有两种结构: ?Name-Value对构成的集合,类似于Java中的Map。 ?Value的有序列表,类似于Java中的Array。 一个JSON格式的数据示例: { "Name":"Apple", "Expiry":"2007/10/1113:54", "Price":3.99, "Sizes":[ "Small", "Medium", "Large" ] } 更多关于JSON数据格式的说明参看JSON官方网站:https://www.sodocs.net/doc/d139891.html,(中文内容参看:https://www.sodocs.net/doc/d139891.html,/json-z h.html) GWT与JSON GWT中支持的客户端服务器端方法调用和数据传递的标准格式是RPC。JSON并不是GWT支持的标准的数据传递格式。那么如何使用JSON来作为GWT的数据传递格式呢?需要以下几步。 第一,引用HTTP和JSON支持。 第二,在客户端创建JSON数据,提交到服务器 第三,在服务器上重写数据格式解析的代码,使之支持JSON格式的数据 第四,在服务器上组织JSON格式的数据,返回给客户端。 第五,客户端解析服务器传回的JSON数据,正确的显示 引用HTTP和JSON支持

找到.gwt.xml文件,在其中的 在之后添加如下的内容: 其中com.google.gwt.json.JSON指的是要使用JSON,com.google.gwt.http.H TTP值得是通过HTTP调用服务器上的服务方法。 客户端构造JSON数据 客户端需要使用com.google.gwt.json.client包内的类来组装JSON格式的数据,数据格式如下: 数据类型说明

jQuery中$.ajax解析xml、json格式数据

jQuery中$.ajax解析xml、json格式数据 $.ajax()方法参数详解: url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 注意:这个要访问url必须与js文件在同一个域,否则会报错。 type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。 async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。 cache:要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false)。设置为false将不会从浏览器缓存中加载请求信息。 data: 要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看processData选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组,jQuery将自动为不同值对应同一个名称。例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。 dataType: 要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。 可用的类型如下: xml:返回XML文档,可用JQuery处理。 html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。 json:返回JSON数据。 jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery 将自动替换后一个“?”为正确的函数名,以执行回调函数。 text:返回纯文本字符串。 beforeSend:要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义HTTP头。在beforeSend中如果返回false可以取消本次ajax请求。XMLHttpRequest对象是惟一的参数。 function(XMLHttpRequest){ this; //调用本次ajax请求时传递的options参数}

遍历json获得数据的几种方法

1 var list1 = [1,3,4]; 2 alert(list1[1]); 3 var list2 = [{"name":"leamiko","xing":"lin"}]; 4 alert(list2[0]["xing"]) 5 alert(list2[0].xing) 01 var value = { 02 "china":{ 03 "hangzhou":{"item":"1"},

04 "shanghai":{"item":"2"}, 05 "chengdu":{"item":"3"} 06 }, 07 "America":{ 08 "aa":{"item":"1"}, 09 "bb":{"item":"2"} 10 }, 11 "Spain":{ 12 "dd":{"item":"1"}, 13 "ee":{"item":"2"}, 14 "ff":{"item":"3"} 15 } 16 }; 17 18 for(var countryObj in value) 19 { 20 document.write(countryObj + ":
") 21 //没用的for(var cityObj in value.countryObj) 22 for(var cityObj in value[countryObj])

23 { 24 document.write(' ' + cityObj + "
"); 25 for(var itemObj in value[countryObj][cityObj]) 26 { 27 document.write(" "+ itemObj + value[countryObj][cityObj][itemObj] +"
") 28 } 29 } 30 }

json数据的存储和读写

android中JSON数据的读写方法 博客分类: android [/color]用习惯了XML,总觉得JSON可读性又差,也不好保存等等,到真正接触了,才发现在android上,JSON就像亲儿子一样容易管教。 还是先看数据源,数据源我采用的是一系列的村民集合,村民的属性如下。 Java代码 1public class Folk { 2String name; 3String career; 4String age; 5int salary; 6boolean sex; 引用 先看写数据,数据是我假定一个村的数据,由一个arraylist填装。通过一个for循环很容易取出了arraylist中的每个对象以及其数据,每个对象,即村民都可以生成一个JSONobject,这里json和java面向对象的思想是多么吻合。prey load! 其次还有一个JSONarray对象,就是一个JSON自己的Arraylist。好比我们把自己的对象转存到一个Json对象中,从我们的Arraylist中取出来,再装进一个Json的Arraylist。 好比我把一个个村名从一辆大卡车上接下来(从自己的ArrayList取),把他们穿戴整齐了

(装进Json对象中),再挥挥手把他们送上火星游的太空飞船(jsonArray),临走我在飞船上挂上了village的标签,火星上的同事会知道我的村民坐的是哪艘船。所有工序完成。 看代码 Java代码 7public class MyJsonWriter { 8ArrayList folks; 9File saveFile; 10public MyJsonWriter(ArrayList folks){ 11this.folks=folks; 12} 13 14public void setFilePath(String filepath){ 15saveFile=new File(filepath); 16try { 17saveFile.createNewFile(); 18} catch (IOException e) { 19// TODO Auto-generated catch block 20 e.printStackTrace(); 21} 22} 23

抓取网页数据工具json提取示例

抓取网页数据工具json提取示例 使用过最新版火车采集器V9的朋友应该都发现V9新增了json提取的功能,但是许多使用抓取网页数据工具的朋友在操作此功能的时候都会觉得有点弄不明白,这里特意为大家整理了json提取的教程示例,感兴趣的朋友可以仔细研究一下。 首先大家需要明白JSON 是有两种结构,简单的说json就是javascript中的对象和数组,所以这两种结构就是对象和数组两种,通过这两种结构可以表示各种复杂的结构。下面具体说明一下 1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为属性值,所以很容易理解,取值方法为对象key 获取属性值value,这个属性值的类型可以是数字、字符串、数组、对象几种。 2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是数字、字符串、数组、对象几种。 经过对象、数组2种结构就可以组合成复杂的数据结构了。如下: { "name": "中国", "province": [{ "name": "黑龙江", "cities": { "city": ["哈尔滨", "大庆"] } }, { "name": "广东", "cities": { "city": ["广州", "深圳", "珠海"] } }, { "name": "台湾", "cities": { "city": ["台北", "高雄"] } }, { "name": "新疆", "cities": { "city": ["乌鲁木齐"] } }] } 我们可以借助工具https://www.sodocs.net/doc/d139891.html,/codeformat/json测试是否是JSON,格式化后如图:

JSON数据读写

JSON数据读写 教学目的: 理解JSON数据读写的类型 掌握JSON数据读写各种方法 教学内容: 一、JSON数据读写的类型 1.客户端读取JSON数据的方法 2.读取服务器端一个对象数据 3.读取服务器端一组对象数据 4.发送并接受服务器端数据 二、JSON数据读写方法 1.客户端读取JSON数据的方法:将JSON数据文本变成JSON数据: eval(“var jsondata=”+jsondatatext); 用jsondata访问其中的数据,这种读写方法意义不大,大多数情况下,它应同服务器端交互。 function readlocaldata() { var val1="'软件专业'"; var val2="true"; var val3="23"; var arr="[12,34,56]"; var obj="{name:'张三',age:23}"; eval("var json="+val1+";");alert("我学的是"+json); eval("var json="+val2+";");alert(!json); eval("var json="+val3+";");alert(2*json); eval("var json="+arr+";");alert(json[1]); eval("var json="+obj+";");alert(https://www.sodocs.net/doc/d139891.html,); } 2.服务器与客户端的JSON数据的交换。 网络数据交换格式选择JSON数据格式。 为将服务器端的JSON数据送到客户端,服务器端要进行序列化;为接受客户端的JSON文本格式数据服务器端要进行反序列化。服务器端序列化和反序列化操作需要JSON类库。搜索、下载、解压文件,得到https://www.sodocs.net/doc/d139891.html,20.dll,并在项目中添加引用..。 一般步骤如下: 1.导入JSON类库 2.定义服务器端的实体类。 3.定义服务器端的一般处理程序。 4.定义客户端的请求页面。 为调用服务器端序列化和反序列化方法,需要定义相关的实体类。 定义实体类Product.cs public class Product {

相关主题