数组及字典转JSON格式代码示例
数组字典字符串笔记备 ,数组及字典转JSON格式代码示例 ,随心_而动,特简单的进度条 ,收全部键盘回调里面使用弱引用对象判断iOS版本让代...
[文件] time_client_1.cpp ~ 1KB
#include
#include
// 图片各种轮拨展示类库Chameleon
using namespace std;
// 图片浏览器小例子
int main(int argc, char *argv[])
{
//初始化Windows的网络库
WORD wVer = MAKEWORD(2, 2);
WSADATA wsaData;
if(0 != WSAStartup(wVer, &wsaData)) {
cout <<"err: net-lib init failed!\n";
system("pause");
return -1;
}else {
cout <<"info: net-lib init success!\n";
}
//请求一个套接字,使用AF_INET(32位IPv4和16位端口),TCP协议和字节流
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(s < 0) {
cout <<"err: socket call failed!\n";
system("pause");
return -1;
}
//填写服务器IP地址和端口, 我的机器局域网IP:10.0.101.137,端口13-日期和时间服务
sockaddr_in servAddr;
memset(&servAddr, 0, sizeof(servAddr));
servAddr.sin_family = AF_INET;
servAddr.sin_port = htons(13);
servAddr.sin_addr.S_un.S_addr = inet_addr("10.0.101.137");
//连接服务器
if(connect(s, (sockaddr*)&servAddr, sizeof(servAddr)) == INVALID_SOCKET) { cout <<"err: connect failed!\n";
system("pause");
return -1;
}else {
cout <<"info: connect success!\n";
}
//接收来自服务器的日期数据
char buff[256];
memset(buff, 0, sizeof(buff));
int n = recv(s, buff, 255, 0);
cout <<"data: server send time-info:"<< buff << endl;
//关闭套接字
closesocket(s);
//关闭网络库
WSACleanup();
system("pause");
return 0;
}
[文件] time_server_1.cpp ~ 2KB
#include
#include
#include
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
//初始化Windows的网络库
WORD wVer = MAKEWORD(2, 2);
WSADATA wsaData;
if(0 != WSAStartup(wVer, &wsaData)) {
cout <<"err: net-lib init failed!\n";
system("pause");
return -1;
}else {
cout <<"info: net-lib init success!\n";
}
//请求一个套接字,使用AF_INET(32位IPv4和16位端口),TCP协议和字节流 SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(s < 0) {
cout <<"err: socket call failed!\n";
system("pause");
return -1;
}
//填写监听地址, 假设主机有多个IP,INADDR_ANY表示任意地址上监听,端口13-日期和时间服务
sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(13);
addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
//绑定端口并且监听客户端的连接
if(bind(s, (sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR) {
cout <<"err: bind failed!\n";
system("pause");
return -1;
}else {
cout <<"info: bind success!\n";
}
//2-表示请求连接队列的最大长度
if(listen(s, 2) == SOCKET_ERROR) {
cout <<"err: listen failed!\n";
system("pause");
return -1;
}else {
cout <<"info: listen success!\n";
}
//处理客户端连接
char buff[256];
sockaddr_in scAddr;
SOCKET sc;
int len = sizeof(scAddr);
while(true) {
sc = accept(s, (sockaddr*)&scAddr, &len);
if(sc == INVALID_SOCKET) {
cout <<"err: accept failed!\n";
break;
}
time_t tick = time(0);
sprintf(buff, "%.24s\r\n", ctime(&tick));
send(sc, buff, strlen(buff), 0);
closesocket(sc);
}
//关闭套接字
closesocket(s);
//关闭网络库
WSACleanup();
return 0;
}
[代码] [Java]代码
package cn.zy.one;
import java.text.Collator;
import java.util.Arrays;
import java.util.Locale;
public class DenoArrary {
public static void main(String[] args) {
String[]str={ "张三", "李四", "王五", "李哥", "张华" };
;
Arrays.sort(str,Collator.getInstance(Locale.CHINA));
System.out.println(Arrays.toString(str));
}
} if(UartState == UART0_TX) //读传感器,控制LED,继电器,自动刷新 {
//判断接收的数据合法性
if(RxData[0]=='L'&&RxData[1]=='S') //数据合法
{
if(RxData[2] == '1')
{ //读操作
if(RxData[3] == '1') //读烟雾传感器数据
readSmoking();
if(RxData[3] == '2') //读光敏传感器数据
readSun();
if(RxData[3] == '3') //读温湿传感器数据
readTempHumidity();
if(RxData[3] == '6') //读人体红外
readMan();
if(RxData[3] == '7') //启动或关闭自动更新
readStAutoUpdate();
}
if(RxData[2] == '0')
{ //写操作
if(RxData[3] == '4')
{ //写LED
if(RxData[4] == '1')
{ //写LED1
if(RxData[6] == '1')
{
LED1 = ON;
P1DIR &= 0xFE; //设置LED1为输入口,读LED1数据,判断是否打开成功
while(LED1 != 1);
P1DIR |= 0x1;
TxData[2] = '4';
TxData[3] = '1';
TxData[4] = '0';
TxData[5] = '0';
TxData[6] = '1';
UartSendString(TxData, 8);
}
else
{
LED1 = OFF;
P1DIR &= 0xFE; //设置LED1为输入口,读LED1数据,判断是否打开成功
while(LED1 == 1);
P1DIR |= 0x1;
TxData[2] = '4';
TxData[3] = '1';
TxData[4] = '0';
TxData[5] = '0';
TxData[6] = '1';
UartSendString(TxData, 8);
}
}
if(RxData[4] == '2')
{ //写LED2
if(RxData[6] == '1')
{
LED2 = ON;
P1DIR &= 0xFD; //设置LED2为输入口,读LED2数据,判断是否打开成功
while(LED2 != 1);
P1DIR |= 0x2;
TxData[2] = '4';
TxData[3] = '2';
TxData[4] = '0';
TxData[5] = '0';
TxData[6] = '1';
UartSendString(TxData, 8);
}
else
{
LED2 = OFF;
P1DIR &= 0xFD; //设置LED2为输入口,读LED2数据,判断是否打开成功
while(LED2 == 1);
P1DIR |= 0x2;
TxData[2] = '4';
TxData[3] = '2';
TxData[4] = '0';
TxData[5] = '0';
TxData[6] = '1';
UartSendString(TxData, 8);
}
}
if(RxData[4] == '3')
{ //写LED3
if(RxData[6] == '1')
{
LED3 = ON;
P1DIR &= 0xEF; //设置LED3为输入口,读LED3数据,判断是否打开成功
while(LED3 != 1);
P1DIR |= 0x10;
TxData[2] = '4';
TxData[3] = '3';
TxData[4] = '0';
TxData[5] = '0';
TxData[6] = '1';
UartSendString(TxData, 8);
}
else
{
LED3 = OFF;
P1DIR &= 0xEF; //设置LED3为输入口,读LED3数据,判断是否打开成功
while(LED3 == 1);
P1DIR |= 0x10;
[代码] [Google Go]代码
package main
import (
"io/ioutil"
"net/http"
"net/"
"fmt"
"encoding/json"
)
//----------------------------------
// 黄金数据调用示例代码-聚合数据
// 在线接口文档:www/docs/29
//----------------------------------
const APPKEY = "*******************" //您申请的APPKEY
func main(){
//1.上海黄金交易所
Request1()
//2.上海期货交易所
Request2()
//3.银行账户黄金
Request3()
}
//1.上海黄金交易所
func Request1(){
//请求地址
juhe :="web:8080/finance/gold/shgold"
//初始化参数
param:=.Values{}
//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参 param.Set("key",APPKEY) //APP Key
param.Set("v","") //JSON格式版本(0或1)默认为0
//发送请求
data,err:=Get(juhe,param)
if err!=nil{
fmt.Errorf("请求失败,错误信息:\r\n%v",err)
}else{
var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn["error_code"].(float64)==0{
fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }
}
}
//2.上海期货交易所
func Request2(){
//请求地址
juhe :="web:8080/finance/gold/shfuture"
//初始化参数
param:=.Values{}
//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参
param.Set("key",APPKEY) //APP Key
param.Set("v","") //JSON格式版本(0或1)默认为0
//发送请求
data,err:=Get(juhe,param)
if err!=nil{
fmt.Errorf("请求失败,错误信息:\r\n%v",err)
}else{
var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn["error_code"].(float64)==0{
fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }
}
}
//3.银行账户黄金
func Request3(){
//请求地址
juhe :="web:8080/finance/gold/bankgold"
//初始化参数
param:=.Values{}
//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参
param.Set("key",APPKEY) //APP Key
//发送请求
data,err:=Get(juhe,param)
if err!=nil{
fmt.Errorf("请求失败,错误信息:\r\n%v",err)
}else{
var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn["error_code"].(float64)==0{
fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }
}
}
// get 网络请求
func Get(api string,params .Values)(rs[]byte ,err error){
var *.
,err=.Parse(api)
if err!=nil{
fmt.Printf("解析错误:\r\n%v",err)
return nil,err
}
//如果参数中有中文参数,这个方法会进行Encode
.RawQuery=params.Encode()
resp,err:=http.Get(.String())
if err!=nil{
fmt.Println("err:",err)
return nil,err
}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)
}
// post 网络请求 ,params 是.Values类型
func Post(api string, params .Values)(rs[]byte,err error){
resp,err:=http.PostForm(api, params)
if err!=nil{
return nil ,err
}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)
}
代码描述:基于GO的黄金数据接口调用代码实例
关联数据:黄金数据
[代码] [C#]代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using https://www.360docs.net/doc/d32781400.html,;
using System.IO;
using https://www.360docs.net/doc/d32781400.html,;
using System.Diagnostics;
using System.Web;
//----------------------------------
// 黄金数据调用示例代码-聚合数据
// 在线接口文档:www/docs/29
// 代码中JsonObject类下载地址:/download/gcm3206021155665/7458439
//----------------------------------
namespace ConsoleAPI
{
class Program
{
static void Main(string[] args)
{
string appkey = "*******************"; //配置您申请的appkey
//1.上海黄金交易所
string 1 = "web:8080/finance/gold/shgold";
var parameters1 = new Dictionary
parameters1.Add("key", appkey);//你申请的key
parameters1.Add("v" , ""); //JSON格式版本(0或1)默认为0
string result1 = sendPost(1, parameters1, "get");
JsonObject newObj1 = new JsonObject(result1);
String errorCode1 = newObj1["error_code"].Value;
if (errorCode1 == "0")
{
Debug.WriteLine("成功");
Debug.WriteLine(newObj1);
}
else
{
//Debug.WriteLine("失败");
Debug.WriteLine(newObj1["error_code"].Value+":"+newObj1["reason"].Value); }
//2.上海期货交易所
string 2 = "web:8080/finance/gold/shfuture";
var parameters2 = new Dictionary
parameters2.Add("key", appkey);//你申请的key
parameters2.Add("v" , ""); //JSON格式版本(0或1)默认为0
string result2 = sendPost(2, parameters2, "get");
JsonObject newObj2 = new JsonObject(result2);
String errorCode2 = newObj2["error_code"].Value;
if (errorCode2 == "0")
{
Debug.WriteLine("成功");
Debug.WriteLine(newObj2);
}
else
{
//Debug.WriteLine("失败");
Debug.WriteLine(newObj2["error_code"].Value+":"+newObj2["reason"].Value); }
//3.银行账户黄金
string 3 = "web:8080/finance/gold/bankgold";
var parameters3 = new Dictionary
parameters3.Add("key", appkey);//你申请的key
string result3 = sendPost(3, parameters3, "get");
JsonObject newObj3 = new JsonObject(result3);
String errorCode3 = newObj3["error_code"].Value;
if (errorCode3 == "0")
{
Debug.WriteLine("成功");
Debug.WriteLine(newObj3);
}
else
{
//Debug.WriteLine("失败");
Debug.WriteLine(newObj3["error_code"].Value+":"+newObj3["reason"].Value);
}
}
https://www.360docs.net/doc/d32781400.html, 小型臭氧发生器侳侱侲
///
/// Http (GET/POST)
///
/// 请求
/// 请求参数
/// 请求方法
///
static string sendPost(string , IDictionary
{
if (method.ToLower() == "post")
{
HttpWebRequest req = null;
HttpWebResponse rsp = null;
System.IO.Stream reqStream = null;
try
{
req = (HttpWebRequest)WebRequest.Create();
req.Method = method;
req.KeepAlive = false;
req.ProtocolVersion = HttpVersion.Version10;
req.Timeout = 5000;
req.ContentType =
"application/x-www-form-encoded;charset=utf-8";
byte[] postData =
Encoding.UTF8.GetBytes(BuildQuery(parameters, "utf8"));
reqStream = req.GetRequestStream();
reqStream.Write(postData, 0, postData.Length);
rsp = (HttpWebResponse)req.GetResponse();
Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding);
}
catch (Exception ex)
{
return ex.Message;
}
finally
{
if (reqStream != null) reqStream.Close();
if (rsp != null) rsp.Close();
}
}
else
{
//创建请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create( + "?" + BuildQuery(parameters, "utf8"));
//GET请求
request.Method = "GET";
request.ReadWriteTimeout = 5000;
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
//返回内容
string retString = myStreamReader.ReadToEnd();
return retString;
}
}
///
/// 组装普通文本请求参数。
///
/// Key-Value形式请求参数字典
///
static string BuildQuery(IDictionary
{
StringBuilder postData = new StringBuilder();
bool hasParam = false;
IEnumerator
parameters.GetEnumerator();
while (dem.MoveNext())
{
string name = dem.Current.Key;
string value = dem.Current.Value;
// 忽略参数名或参数值为空的参数
if
(!string.IsNullOrEmpty(name))//&& !string.IsNullOrEmpty(value)
{
if (hasParam)
{
postData.Append("&");
}
postData.Append(name);
postData.Append("=");
if (encode == "gb2312")
{
postData.Append(HttpUtility.Encode(value,
Encoding.GetEncoding("gb2312")));
}
else if (encode == "utf8")
{
postData.Append(HttpUtility.Encode(value,
Encoding.UTF8));
}
else
{
postData.Append(value);
}
hasParam = true;
}
}
return postData.ToString();
}
///
/// 把响应流转换为文本。
///
/// 响应流对象
/// 编码方式
///
static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding) {
System.IO.Stream stream = null;
StreamReader reader = null;
try
{
// 以字符流的方式读取HTTP响应
stream = rsp.GetResponseStream();
reader = new StreamReader(stream, encoding);
return reader.ReadToEnd();
}
finally
{
// 释放资源
if (reader != null) reader.Close();
if (stream != null) stream.Close();
if (rsp != null) rsp.Close();
}
}
}
}
[代码] [PHP]代码
/**
* c远程传输工具
*/
public function post_c($,$body,$header,$type='POST'){
$ch = c_init();
c_setopt($ch,COPT_,$);
c_setopt($ch,COPT_HEADER,0);//0只要正文
c_setopt($ch,COPT_TIMEOUT,5);//设置超时时间
c_setopt($ch,COPT_CONNECTTIMEOUT,5);
//将c_exec()获取的信息以文件流的形式返回,而不是直接输出。
c_setopt($ch,COPT_RETURNTRANSFER,1);
//增加header头信息
// array_push($header,'Accept:application/json');
// array_push($header,'Content-Type:application/json');
// array_push($header,'http:multipart/form-data');
if(count($body)>0){
c_setopt($ch,COPT_POSTFIELDS,$body);
}
if(count($header)>0){
c_setopt($ch,COPT_HTTPHEADER,$header);
}
//设置上传文件相关
c_setopt($ch,COPT_FOLLOWLOCATION,true);
c_setopt($ch,COPT_MAXREDIRS,3);//递归
c_setopt($ch,COPT_SSL_VERIFYPEER,false);// 对认证证书来源的检查
c_setopt($ch,COPT_SSL_VERIFYHOST,0);// 从证书中检查SSL加密算法
switch ($type) {
case 'GET':
c_setopt($ch,COPT_HTTPGET,1);
break;
case 'POST':
c_setopt($ch,COPT_POST,1);
break;
case 'PUT':
c_setopt($ch,COPT_CUSTOMREQUEST,'PUT');
break;
case 'DELETE':
c_setopt($ch,COPT_CUSTOMREQUEST,'DELETE');
break;
}
//上传文件相关设置
c_setopt($ch,COPT_ENCODING,'gzip');
c_setopt($ch,COPT_USERAGENT,'SSTS Browser/1.0');
c_setopt($ch,COPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)');// 模拟用户使用的浏览器
if(c_errno($ch)){
return c_error($ch);
}
$content = c_exec($ch);
c_close($ch);//关闭c资源,并且释放系统资源
$result = json_decode($content,true);
if(!empty($result)){
return $result;
}else{
return $content;
}
}
[代码] [C/C++]代码
/*
编译指令
$ /opt/sybase/OCS-16_0/bin/cpre64 -m teststu.cp
$ cc -m64 -g -DSYB_LP64 -I. -I/opt/sybase/OCS-16_0/include teststu.c
/opt/sybase/OCS-16_0/include/sybesql.c -L/opt/sybase/OCS-16_0/lib -lsybct64
-lsybtcl64 -lsybcs64 -lsybcomn64 -lsybintl64 -lsybunic64 -rdynamic -ldl -lnsl -lm -o teststu
*/
#include
/*建立通讯区域*/
EXEC SQL INCLUDE SQLCA;
/*
** These tokens must be declared in a declare section
** because they are used in declare sections below.
*/
EXEC SQL BEGIN DECLARE SECTION;
#define TYPESIZE 13
#define TIDSIZE 6
EXEC SQL END DECLARE SECTION;
#define EOLN '\0'
/*
** Forward declarations of the error and message handlers and
** other subroutines called from main().
*/
void error_handler();
void warning_handler();
int
main(int argc, char *argv[])
{
/*声明宿主变量*/
EXEC SQL BEGIN DECLARE SECTION;
/* storage for login name and password. */
char username[30];
char sname[30];
char password[30];
char server[30];
EXEC SQL END DECLARE SECTION;
/*错误处理*/
EXEC SQL WHENEVER SQLERROR CALL error_handler();
EXEC SQL WHENEVER SQLWARNING CALL warning_handler();
EXEC SQL WHENEVER NOT FOUND CONTINUE;
/*连接到 SQL SERVER 服务器*/
/*
** Copy the user name and password defined in sybsqlex.h to
** the variables declared for them in the declare section.
*/
strcpy(username, "mymotif");
strcpy(password, "wxwpxh");
strcpy(server, "MYMOTIFVOSTRO145480");
EXEC SQL CONNECT :username IDENTIFIED BY :password using :server;
EXEC SQL USE testdb;
EXEC SQL DECLARE c1 CURSOR FOR
SELECT SNAME FROM STUDENT;
EXEC SQL OPEN c1;
printf("name in table student\n");
do {
EXEC SQL FETCH c1 INTO :sname;
if (sqlca.sqlcode != 0) break;
printf( "student name = %s\n", sname );
} while ( 1 );
EXEC SQL CLOSE c1;
return(0);
}
/*错误处理程序*/
/*
** void error_handler()
**
** Displays error codes and numbers from the SQLCA and exits with
** an ERREXIT status.
*/
void
error_handler(void)
{
fprintf(stderr, "\n** SQLCODE=(%ld)", sqlca.sqlcode);
if (sqlca.sqlerrm.sqlerrml)
{
fprintf(stderr, "\n** ASE Error ");
fprintf(stderr, "\n** %s", sqlca.sqlerrm.sqlerrmc);
}
fprintf(stderr, "\n\n");
exit(-1);
}
/*
** void warning_handler()
**
** Displays warning messages.
*/
void
warning_handler(void)
{
if (sqlca.sqlwarn[1] == 'W')
{
fprintf(stderr,
"\n** Data truncated.\n");
}
if (sqlca.sqlwarn[3] == 'W')
{
fprintf(stderr,
"\n** Insufficient host variables to store results.\n"); }
return;
}
[代码] Log4j配置
导入这个包,会引入下面两个jar
[文件] 无缝滚动.html ~ 1KB
*{
margin: 0;padding: 0;
}
#wrap ul li{
width: 380px;
height: 230px;
float: left;
list-style: none;
}
#wrap ul{
position: absolute;
left: 0;
top: 0;
}
#wrap{
width: 1520px;
height: 230px;
margin: 100px 50px;
position: relative;
background: red;
overflow: hidden;
后台转换JSON数据类型,前台解析JSON数据等等例子总结
后台转换JSON数据类型,前台解析JSON数据等等例子总结 JSON对象: JSONObject obj = new JSONObject(); obj.put("result", 0); obj.put("message", message); return obj.toJSONString(); 前台解析: Success:function(data){ var result = data.result; var message = data.message; } json对象中有json对象的写法: Objstr为一个JSONObject obj的String转换 private String getsuccess(String objstr,int number){ JSONObject obj = new JSONObject(); obj.put("result", 1); obj.put("obj", objstr); obj.put("number", number); return obj.toJSONString(); }
前台解析: Picjson为success返回的data var result = picjson.result; if (result==1) { var objdata = picjson.obj; var data = eval('(' + objdata + ')'); var num = picjson.number; picurl = null; showpiclist(data, num); } else{ alert(picjson.message); picurl = null; } list转成json对象 需要的包: https://www.360docs.net/doc/d32781400.html,mons-lang.jar https://www.360docs.net/doc/d32781400.html,mons-beanutils.jar https://www.360docs.net/doc/d32781400.html,mons-collections.jar https://www.360docs.net/doc/d32781400.html,mons-logging.jar
Json数据格式的使用方法入门教程
JSON 数据格式解析 和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object 对象。 String,Number 和 Boolean 用 JSON 表示非常简单。例如,用 JSON 表示一个简单的 String “ abc ”,其格式为: "abc" 除了字符 ",\,/ 和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他 Unicode 字符可以直接输出。下图是一个 String 的完整表示结构: 图 1. String 的完整表示结构 一个 Number 可以根据整型或浮点数表示如下:
图 2. Number 的表示结构 这与绝大多数编程语言的表示方法一致,例如: 12345(整数) -3.9e10(浮点数) Boolean 类型表示为 true 或 false 。此外,JavaScript 中的 null 被表示为 null,注意,true、false 和 null 都没有双引号,否则将被视为一个String 。 JSON 还可以表示一个数组对象,使用 [] 包含所有元素,每个元素用逗号分隔,元素可以是任意的 Value,例如,以下数组包含了一个 String,Number,Boolean 和一个 null: Object 对象在 JSON 中是用 {} 包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object 相当于 Java 中的 Map
使用JSON的方法
Java代码转换成json代码 1.import net.sf.json.JSONArray; 2.import net.sf.json.JSONObject; 1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray2 = JSONArray.fromObject( list ); 2. Map集合转换成json代码 Map map = new HashMap(); map.put("name", "json"); map.put("bool", Boolean.TRUE); map.put("int", new Integer(1)); map.put("arr", new String[] { "a", "b" }); map.put("func", "function(i){ return this.arr[i]; }"); JSONObject json = JSONObject.fromObject(map); 3. Bean转换成json代码 JSONObject jsonObject = JSONObject.fromObject(new JsonBean()); 4. 数组转换成json代码 boolean[] boolArray = new boolean[] { true, false, true }; JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
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" }
不同json数据格式之间的转换
待转换的json数据格式为: [{ "id":1, "text":"菜单", "children":[{ "id":11, "text":"菜单1", "state":"closed", "children":[{ "id":111, "text":"测试11", "attributes":{ "key":"Custom Attribute1" } },{ "id":112, "text":"测试12", "attributes":{ "key":"xx" }, },{ "id":113, "text":"测试13", "attributes":{ "key":"Custom Attribute1" } }] },{ "id":12, "text":"菜单2", "children":[{ "id":121, "text":"测试21", "attributes":{ "key":"Custom Attribute1" } },{ "id":122, "text":"测试22", "attributes":{ "key":"Custom Attribute1" } },{ "id":123,
"text":"测试23", "attributes":{ "key":"Custom Attribute1" } }] }] }] 该json格式为jQuery easyui tree的json数据格式,先要把它转换成微信自定义菜单的json 数据格式,如: { "button": [ { "name": "菜单1", "sub_button": [ { "type": "click", "name": "测试11", "key": "Custom Attribute1", "sub_button": [ ] }, { "type": "click", "name": "测试12", "key": "xx", "sub_button": [ ] }, { "type": "click", "name": "测试13", "key": "Custom Attribute1", "sub_button": [ ] } ] }, { "name": "菜单2", "sub_button": [ { "type": "click", "name": "测试21", "key": "Custom Attribute1", "sub_button": [ ] }, {
标准JSON格式定义与解析注意点
是一种轻量级地数据交换格式.它是基于语法标准地一个子集.是一种轻量级地数据交换格式.采用完全独立于语言地文本格式,可以很容易在各种网络、平台和程序之间传输.地语法很简单,易于人阅读和编写,同时也易于机器解析和生成. 要想熟练地操作数据,就要先了解数据: 地规则很简单:对象是一个无序地“‘名称值’对”集合.一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名称”后跟一个“:”(冒号);“‘名称值’对”之间使用“,”(逗号)分隔.文档来自于网络搜索 规则如下: 、映射用冒号(“:)表示.名称:值 、并列地数据之间用逗号(“,”)分隔.名称:值,名称:值 、映射地集合(对象)用大括号(“{}”)表示. { 名称:值, 名称:值 } 、并列数据地集合(数组)用方括号(“[]”)表示. [ {名称:值,名称:值}, {名称:值,名称:值} ] 、元素值可具有地类型:, , , , , 文档来自于网络搜索 注意:、用冒号(而不是等号)来赋值.每一条赋值语句用逗号分开.整个对象用大括号封装起来.可用大括号分级嵌套数据.文档来自于网络搜索 、对象描述中存储地数据可以是字符串,数字或者布尔值.对象描述也可存储函数,那就是对象地方法. 、主要有两种数据结构 ()由–对组成地数据结构.这种数据结构在不同地语言中有不同地实现. 例如:在中是一个对象.而在中是一种结构语言中是,其它地语言中可能为、等.文档来自于网络搜索 ()有序集合、这种数据结构在不同语言中可能有、、数组和序列等实现. 、中数据格式地处理 <>转 [] <>( ) {
{ (()); 文档来自于网络搜索( ()) { (, ); (()); } } { ; } } 转<> [] ( ) { { (); 文档来自于网络搜索 ( (())) 文档来自于网络搜索 { (); } } { ; } } 转 [] ( ) { ( ) { ""; } ();
Java学习笔记:JSONObject与JSONArray的使用
Java不像PHP解析和生产JSON总是一个比较痛苦的过程。但是使用JSONObject和JSONArray会让整个过程相对舒服一些。 需要依赖的包:commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar 1. 创建一个JSONObject对象: package https://www.360docs.net/doc/d32781400.html,.video.resource.controller.web; import java.util.ArrayList; import java.util.HashMap; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Test { public static void main(String[] args) { //JsonObject和JsonArray区别就是JsonObject是对象形式,JsonArray是数组形式 //创建JsonObject第一种方法 JSONObject jsonObject = new JSONObject(); jsonObject.put("UserName", "ZHULI"); jsonObject.put("age", "30"); jsonObject.put("workIn", "ALI"); System.out.println("jsonObject1:" + jsonObject); //创建JsonObject第二种方法 HashMap
数据交换格式XML和JSON对比
数据交换格式XML和JSON对比 1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用.具体的可以问Google或百度。相比之JSON这种轻量级的数据交换格式,XML可以称为重量级的了。 JSON : JavaScript Object Notation 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集。JSON概念很简单,就是服务器直接生成Javascript语句,客户端获取后直接用eval()方法来获得这个对象,这样就可以省去解析XML的性损失 2.对比 1)数据交换格式中XML是重量级的,JSON是轻量级的。这个体现在解析上。 XML目前设计了三种解析方式:DOM、SAX和pull; SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。 所以,JSON和XML的轻/重量级的区别在于:JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;而XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理。
JSON规范
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 JSON建构于两种结构: ?“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。 ?值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。 JSON具有以下这些形式: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
JSON 教程
JSON 教程
?
JSON:JavaScript 对象表示法(JavaScript Object Notation)。 : 对象表示法( )。
JSON 是存储和交换文本信息的语法。类似 XML。 是存储和交换文本信息的语法。 。
JSON 比 XML 更小、更快,更易解析。 更小、更快,更易解析。
每一章中用到的实例
{ "employees": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] }
这个 employee 对象是包含 3 个员工记录(对象)的数组。
什么是 JSON ?
? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) ? JSON 是轻量级的文本数据交换格式 ? JSON 独立于语言 * ? JSON 具有自我描述性,更易理解
* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
JSON - 转换为 JavaScript 对象
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原 生的 JavaScript 对象。
JSON 简介
?
1
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,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":12 3456,"topscore":1500,"topplaytime":"2009-11-20"}]; 为了方便地处理JSON数据,JSON提供了json.js包,下载地址:https://www.360docs.net/doc/d32781400.html,/json.js 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如: JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象: var str2 = { "name": "cxh", "sex": "man" }; 一、JSON字符串转换为JSON对象 要运用上面的str1,必须运用下面的要领先转化为JSON对象: //由JSON字符串转换为JSON对象 var obj = eval('(' + str + ')'); 或者 var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
C#Json转Datatable=Json解析实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace jsonHelp { ///
publicclass Result { publicstring result { get; set; } publicstring message { get; set; } publicstring qrCode { get; set; } public OrderList[] orderList { get; set; } public MealList[] mealList { get; set; } } publicclass OrderList { publicstring orderId { get; set; } publicstring storeId { get; set; } publicstring mealName { get; set; } publicstring mealId { get; set; } publicstring bookingTime { get; set; } publicstring quantity { get; set; } publicstring price { get; set; } publicstring status { get; set; } } publicclass MealList { publicstring mealId { get; set; } publicstring assignedDiningStoreId { get; set; } publicstring mealName { get; set; } publicstring price { get; set; } publicstring canSale { get; set; } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
JSONObject和JSONArray使用手册
JSONObject和JSONArray使用 import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.util.*; public class Java Test { public static void main(String[] args){ JSONObject obj=new JSONObject(); obj.put("derek","23"); obj.put("dad", "49"); obj.put("mom", "45"); System.out.println("通过构造器的方式创建的JSONObject对象:"+obj); Map
Jayrock.Json读取json数据(net)
1:首先下载Jayrock.Json.dll文件,放入bin目录中;地址:https://www.360docs.net/doc/d32781400.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_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: 密文数据的长度
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更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。
处理格式数据的通用类
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简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript 的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。 Json是一种异常简单易懂的数据格式,关于json的规定,仅仅如下而已: 1)并列的数据之间用逗号(", ")分隔。 2)映射用冒号(": ")表示。 3)并列数据的集合(数组)用方括号("[]")表示。 4)映射的集合(对象)用大括号("{}")表示。 JSON有两种结构数组和对象:数组表示有序数据的集合,而对象表示无序数据的集合。 看下面例子: $arr = array(111,'aaa','bbb'); $arr1 = array( 'a' => 'aaa', 'b' => 222 ); $arr2 = array( 'a' => 'aaa', 'other' => array( 'bbb',1111 ) ); echo json_encode($arr); //[111,"aaa","bbb"] echo json_encode($arr1); //{"a":"aaa","b":222} echo json_encode($arr2); //{"a":"aaa","other":["bbb",1111]} 从上看出:由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。 关于PHP对json支持说明: json_encode只支持UTF-8编码的数据; json_decode永远只反映一个PHP对象,带上第二个参数true可返回数组: $json = '{"a":"aaa","other":["bbb",1111]}'; print_r(json_decode($json)); print_r(json_decode($json, true)); 以上所述是小编给大家介绍的JSON两种结构之对象和数组的理解,希望对大家有所帮助
JAVA数据格式转换成JSON
操作javascript对象 JavaScript对象是由一些”键-值”对组成的,而且可以方便地使用花括号({})来定义。另一方面,JavaScript的数组则可以使用方括号([])进行动态定义。将这两种语法组合起来,可以轻松地表达复杂而且庞大的数据结构. Douglas Crockford为利用这种简单的语法起了一个名字,叫做JSON(JavaScript Object Notation,JavaScript对象表示法)。通过这种表示法能够方便地取代数据量庞大的XML格式: JSON即JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与JavaScript的交互 尽管有许多宣传关于XML如何拥有跨平台,跨语言的优势,然而,除非应用于Web Services,否则,在普通的Web应用中,开发者经常为XML的解析伤透了脑筋,无论是服务器端生成或处理XML,还是客户端用JavaScript解析XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数Web应用来说,他们根本不需要复杂的XML来传输数据,XML的扩展性很少具有优势,许多AJAX应用甚至直接返回HTML片段来构建动态Web页面。和返回XML并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。 现在,JSON为Web应用开发者提供了另一种数据交换格式。让我们来看看JSON到底是什么,同XML或HTML片段相比,JSON提供了更好的简单性和灵活性。 JSON数据格式解析 和XML一样,JSON也是基于纯文本的数据格式。由于JSON天生是为JavaScript准备的,因此,JSON的数据格式非常简单,您可以用JSON传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object对象。 String,Number和Boolean用JSON表示非常简单。例如,用JSON表示一个简单的 除了字符",\,/和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他Unicode字符可以直接输出。下图是一个String的完整表示结构:
在handler中接收json数组
一、调用webservice接口在线程发送消息 if(methodname.equals("GetStationByUserID")){ //根据用户ID获取站点列表 // System.out.println("---根据用户ID获取站点列表 ---"); stationArrayList = new ListviewDatasourse().getstationlist(methodname, soapObject); Message message = handle.obtainMessage(); Bundle data = new Bundle(); message.what = 3; // 这里是消息的类型 StringBuffer sb = new StringBuffer("["); for(int i = 0; i < stationArrayList.size(); i++) { Map
String value = (String) map.get(key); sb.append("{\"key\"=\""+key+"\",\"value\"=\""+value+" \"},"); } } if(sb.length()>1){ //如果数组长度大于1 sb.deleteCharAt(sb.length()-1); //去掉最后一个逗号 } sb.append("]"); info = sb.toString(); data.putBoolean("data", true); // 这里是消息传送的数据 data.putString("info", info); message.setData(data); handle.sendMessage(message); } 二、在handler中接收数据