json视频

| 专四专八 |

【www.guakaob.com--专四专八】

json视频篇一
《python开发实战python视频教程 7Json的api》

json视频篇二
《MARS-android视频教程代码-第三季第五集(WEB JSON)》

MARS-Android 视频教程实例源代码

第三季第六集(定位操作—MARS老师变相实现的那个)

注:该例需要在Android2.2以下的模拟器或手机上去实现,否则就需要加入StrictMode语句代码,是因为android2.3以上版本加入了在访问网络、访问本地磁盘等费时操作时不能在主线程上实现的功能。

AVD版本

Build SDK和Mini SDK

Location01

activity_main.xml

<RelativeLayout

xmlns:android="

xmlns:tools="

android:layout_width="match_parent"

android:layout_height="match_parent" >

<TextView

android:id="@+id/textviewId"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello_world"

tools:context=".MainActivity" />

<Button

android:id="@+id/buttonId"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@id/textviewId"

android:text="获取地址"

/>

</RelativeLayout>

MainActivity.java

package mars.location06;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URLEncoder;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;

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

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

import com.google.gson.Gson;

import android.os.Bundle;

import android.os.StrictMode;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.text.style.StrikethroughSpan;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

private Button geobutton=null; //@SuppressLint({ "NewApi", "NewApi", "NewApi", "NewApi", "NewApi", @Override "NewApi", "NewApi", "NewApi", "NewApi", "NewApi", "NewApi", "NewApi" })

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//StrictMode.setThreadPolicy(new

StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());

//StrictMode.setVmPolicy(new

StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().penaltyLog

().penaltyDeath().build());

geobutton=(Button)findViewById(R.id.buttonId);

geobutton.setOnClickListener(new geoButtonOnClickListener());

}

private class geoButtonOnClickListener implements OnClickListener{ public void onClick(View v){

System.out.println("geoButtonListener"); String

url="

//String

url="

}

} HttpClient httpClient=new DefaultHttpClient(); String responseData=""; try{ { } Gson gson=new Gson(); TestResult System.out.println(responseData); e.printStackTrace(); HttpResponse response=httpClient.execute(new HttpGet(url)); HttpEntity entity=response.getEntity(); BufferedReader String line=""; while((line=bufferReader.readLine())!=null){ } responseData=responseData+line; bufferReader=new BufferedReader(new InputStreamReader(entity.getContent())); }catch(Exception e) testResult=gson.fromJson(responseData,TestResult.class);

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main, menu); return true;

}

}

Result.java

package mars.location06;

public class Result {

private String[] types; private String formatted_address; /** * @return the types */ public String[] getTypes() { } /** * @param types the types to set */ public void setTypes(String[] types) { this.types = types; return types;

}

/**

* @return the formatted_address

*/

public String getFormatted_address() {

return formatted_address;

}

/**

* @param formatted_address the formatted_address to set

*/

public void setFormatted_address(String formatted_address) { this.formatted_address = formatted_address;

}

}

TestResult.java

package mars.location06;

import java.util.List;

public class TestResult {

private String status;

private List<Result> results;

/**

* @return the status

*/

public String getStatus() {

return status;

}

/**

* @param status the status to set

*/

public void setStatus(String status) {

this.status = status;

}

/**

* @return the results

*/

public List<Result> getResults() {

return results;

}

}

/** * @param results the results to set */ public void setResults(List<Result> results) { } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { } // TODO Auto-generated method stub System.out.println("aaaaaa"); return "TestResult [results="+results+",status="+status+"]"; this.results = results;

AndroidManifest.xml

<manifest xmlns:android="package="mars.location06"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="15" />

<uses-permission android:name="android.permission.INTERNET" />

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name=".MainActivity"

android:label="@string/title_activity_main" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category

android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

json视频篇三
《PHP的json_encode详解分析》

PHP的json_encode详解分析

json的优点就不说了,

有个习惯,我在输出json的时候,喜欢用 sprintf 拼成json格式,

前两天被朋友说不标准,必须要用json_encode生成的才是标准的json格式,我当然很郁闷啦, 用了这么多年了,刚知道 这样做不标准,既然说我不标准,那上面才是标准的json格式?

[php] view plaincopy

{a : 'abc'}

{'a' : 'abc'}

{a : "abc"}

{"a" : "abc"}

那都知道,只有第四种才是标准的json格式。

我这么做

[php] view plaincopy

$ret_json='{"%s":"%s"}';

echo json_encode($ret_json,"a","abc");

必然也符合标准。(PS:^_^专业的php开发交流群:276167802,验证:wk)

既然如此,那我就要刨根问底,json_encode生成的json格式究竟有什么不同?

上代码

[php] view plaincopy

static PHP_FUNCTION(json_encode)

{

zval *parameter;

smart_str buf = {0};

long options = 0;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|l", ¶meter, &options) == FAILURE) {

return;

}

JSON_G(error_code) = PHP_JSON_ERROR_NONE;

php_json_encode(&buf, parameter, options TSRMLS_CC);

ZVAL_STRINGL(return_value, buf.c, buf.len, 1);

smart_str_free(&buf);

}

JSON_G(error_code) = PHP_JSON_ERROR_NONE;

是定义的json错误,该错误可以通过json_last_error函数获取,你用过吗?反正我没用过。 php_json_encode是主要的操作

[php] view plaincopy

PHP_JSON_API void php_json_encode(smart_str *buf, zval *val, int options TSRMLS_DC) /* {{{ */ {

switch (Z_TYPE_P(val))

{

case IS_NULL:

smart_str_appendl(buf, "null", 4); //输出NULL

break;

case IS_BOOL:

if (Z_BVAL_P(val)) {

smart_str_appendl(buf, "true", 4);//输出true

} else {

smart_str_appendl(buf, "false", 5);//输出false

}

break;

case IS_LONG:

smart_str_append_long(buf, Z_LVAL_P(val));//输出长整形的值

break;

case IS_DOUBLE:

{

char *d = NULL;

int len;

double dbl = Z_DVAL_P(val);

if (!zend_isinf(dbl) && !zend_isnan(dbl)) {//非无穷尽

len = spprintf(&d, 0, "%.*k", (int) EG(precision), dbl);

smart_str_appendl(buf, d, len);

efree(d);

} else {

php_error_docref(NULL TSRMLS_CC, E_WARNING, "double %.9g does not conform to the JSON spec, encoded as 0", dbl);

smart_str_appendc(buf, '0');

}

}

break;

case IS_STRING://字符串

json_escape_string(buf, Z_STRVAL_P(val), Z_STRLEN_P(val), options TSRMLS_CC); break;

case IS_ARRAY://数组和对象

case IS_OBJECT:

json_encode_array(buf, &val, options TSRMLS_CC);

break;

default:

php_error_docref(NULL TSRMLS_CC, E_WARNING, "type is unsupported, encoded as null"); smart_str_appendl(buf, "null", 4);

break;

}

return;

}

很明显,根据不同的类型,会有相应的case。

最复杂的是 字符串 、数组 、对象这三种类型,数组和对象是同一种操作。

先看看字符串吧,很长,注释直接写在代码里。

//options应该是5.3版本之后才支持的,由以下常量组成的二进制掩码: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE.虽然我没用过。。。

[php] view plaincopy

static void json_escape_string(smart_str *buf, char *s, int len, int options TSRMLS_DC) /* {{{ */

{

int pos = 0;

unsigned short us;

unsigned short *utf16;

if (len == 0) {//如果长度为0,则直接返回 双引号 ""

smart_str_appendl(buf, "\"\"", 2);

return;

}

if (options & PHP_JSON_NUMERIC_CHECK) {//检测是否为0-9的数字,如果是数字,那么就会直接把数据作为long或double类型返回。

double d;

int type;

long p;

if ((type = is_numeric_string(s, len, &p, &d, 0)) != 0) {

if (type == IS_LONG) {

smart_str_append_long(buf, p);

} else if (type == IS_DOUBLE) {

if (!zend_isinf(d) && !zend_isnan(d)) {

char *tmp;

int l = spprintf(&tmp, 0, "%.*k", (int) EG(precision), d);

smart_str_appendl(buf, tmp, l);

efree(tmp);

} else {

php_error_docref(NULL TSRMLS_CC, E_WARNING, "double %.9g does not conform to the JSON spec, encoded as 0", d);

smart_str_appendc(buf, '0');

}

}

return;

}

}

utf16 = (unsigned short *) safe_emalloc(len, sizeof(unsigned short), 0);

len = utf8_to_utf16(utf16, s, len); //这里会对你输入的值一次处理转成对应的Dec码,比如1是49,a是97这样的,保存到utf16中。

if (len <= 0) {//如果len小于0 说明出错。如果用json_encode处理GBK的编码,就会在这里挂掉。 if (utf16) {

efree(utf16);

}

if (len < 0) {

JSON_G(error_code) = PHP_JSON_ERROR_UTF8;

if (!PG(display_errors)) {

php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid UTF-8 sequence in argument"); }

smart_str_appendl(buf, "null", 4);

} else {

smart_str_appendl(buf, "\"\"", 2);

}

return;

}

smart_str_appendc(buf, '"'); //输入 \"

//下面这一段代码就是将一些特殊字符转义如 双引号,反斜线等等

[php] view plaincopy

while (pos < len)

{

us = utf16[pos++];

switch (us)

{

case '"':

if (options & PHP_JSON_HEX_QUOT) {

smart_str_appendl(buf, "\\u0022", 6);

} else {

smart_str_appendl(buf, "\\\"", 2);

}

break;

case '\\':

smart_str_appendl(buf, "\\\\", 2);

break;

case '/':

smart_str_appendl(buf, "\\/", 2);

break;

case '\b':

smart_str_appendl(buf, "\\b", 2);

break;

case '\f':

smart_str_appendl(buf, "\\f", 2);

break;

case '\n':

smart_str_appendl(buf, "\\n", 2);

break;

case '\r':

smart_str_appendl(buf, "\\r", 2);

break;

case '\t':

smart_str_appendl(buf, "\\t", 2);

break;

case '<':

if (options & PHP_JSON_HEX_TAG) {

smart_str_appendl(buf, "\\u003C", 6);

} else {

smart_str_appendc(buf, '<');

}

break;

case '>':

if (options & PHP_JSON_HEX_TAG) {

smart_str_appendl(buf, "\\u003E", 6);

} else {

smart_str_appendc(buf, '>');

}

break;

case '&':

if (options & PHP_JSON_HEX_AMP) {

smart_str_appendl(buf, "\\u0026", 6);

} else {

smart_str_appendc(buf, '&');

}

break;

case '\'':

if (options & PHP_JSON_HEX_APOS) {

smart_str_appendl(buf, "\\u0027", 6);

} else {

smart_str_appendc(buf, '\'');

}

break;

default: //一直到这里,没有特殊字符就会把值append到buf中 if (us >= ' ' && (us & 127) == us) {

smart_str_appendc(buf, (unsigned char) us);

} else {

smart_str_appendl(buf, "\\u", 2);

us = REVERSE16(us);

smart_str_appendc(buf, digits[us & ((1 << 4) - 1)]); us >>= 4;

smart_str_appendc(buf, digits[us & ((1 << 4) - 1)]); us >>= 4;

smart_str_appendc(buf, digits[us & ((1 << 4) - 1)]);

json视频篇四
《JSon API》

JSON简介:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 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的具体形式 1、对象是一个无序的“„名称/值‟对”集合。一个对象以“{”开始,以“}”结束。每个“名称”后跟一个“:”,“„名称/值‟对”之间使用“,”分隔。

2、数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。 3、值(value)可以是双引号括起来的字符串(String)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。

4、字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜体转义。一个字符(character)即一个单独的字符串(characeter string)。

常见的远程数据调用,大都基于XML。 使用XML作为传输格式的优势: 1. 格式统一, 符合标准

2. 容易与其他系统进行远程交互, 数据共享比较方便 缺点:

1. XML文件格式文件庞大, 格式复杂, 传输占用带宽

2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护 3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码 4. 服务器端和客户端解析XML花费资源和时间 JSON与XML比较 可读性

JSON和XML的可读性不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。 可扩展性

XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。 解码难度

XML的解析得考虑子节点父节点,相对复杂,而JSON的解析难度几乎为0。 实例比较

XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。 现假设有一个用户数据包括:用户名、密码、所在部门、性别、年龄。 用XML表示如下:

<?xml version="1.0" encoding="utf-8"?> <user>

<name>张三 </name>

<password>123456</password> <department>技术部</department> <sex>男</sex> <old>30</old> </user>

用JSON表示如下: {

name:"张三",

password:"123456", department:"技术部", sex:"男", old:30

与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,同样具有可读性。XML比较适合于标记文档,而JSON却更适合于时行数据交换处理。一个JSON文档的每一个实例都负责描述一个对象—具体的描述是通过使用嵌套的对象,数组,字符串,数字,布尔值或null值来实现的。相对而言,相同的数据量,JSON数据格式传输量比XML要小很多,以上述例子,

XML有147个字符,而JSON只有61个字符。

JSON为JavaScript的一个子集,是一种轻量级的和高度灵活的处理数据交换的方式。与传统的XML处理技术相比,这个工具的分析速度更快且更为易用。从该工具的性能和使用现状来看,它有可能会成为下一代Web 2.0开发中XML数据操作的主要替代者。

正因为JSON是javascript的一个子集,它可以很方便的在web页面上使用,通过ajax技术,很容易实现数据与调用网站的集成。

JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序将服务器数据转换成JSON数据格式,通过HTML页面的动态JS文件加载,即可使用JS文件的JSON数据。

汇通天下JSON酒店预订服务引擎是基于JSON开发的一套平台。

所有数据调用,均通过JSON对象传递。调用者无须进行繁琐的解析,通过javascript就可以直接通过“名称/值”来进行数据描述 属性 属性 serverurl localhost posthtm

类型 string string string

描述 服务器地址 本地地址

订单提交页面地址

说明 必须配置 必须配置

demo文件夹中post文件夹内对应post.htm必须配置,文件内容请勿修改,建议默认配置

demo文件夹中post文件夹内对应orderback.htm必须配置,文件内容请勿修改,建议默认配置

demo文件夹中post文件夹内对应update.htm必须配置,文件内容请勿修改,建议默认配置

orderbackhtm string 预订提交返回调用页面地址

updatehtm string 订单更新提交页面地址

backhtm string

调用网站后台获取订单确认号地址,服务器

提交Post表单信息(参数:guid订单唯一如无后台接收页面,请设为空 编号,confnum:订单确认号) 日期控件页面地址

如不使用demo中日期控件,请设为空。demo文件夹中post文件夹内对应calendar.htm

说明

calendarhtm 对象 对象 TA Core

string

类型 object object

描述

用户基本配置信息 API方法对象

Hubs1.TA 对象

描述

API调用用户基本信息设置

属性 iata userid usertype tatitle emailalias emailfrom fromurl message email

类型 string number string string string string string Boolean Boolean

描述

iata号,汇通天下提供 用户ID,汇通天下提供 用户类型,可以保留为空 预订确认信 Title

预订确认信 发送人 显示名称 预订确认信 Email 显示 预订来源网站

是否发送手机确认短信 是否发送Email确认信

说明 eg:900000

订房宝用户ID,eg:3651

eg:eg:false eg:true

示例

var Hubs1={ TA:{

iata:"900000", userid:3651,

usertype:"GroupUser",

tatitle:"JSON4.0酒店预订中心", emailalias:"JSON4.0邮箱", emailfrom:"json@hubs1.net", fromurl:"message:false, email:true }, }

Hubs1.Core 对象

描述

Hubs1.Core对象包含Json数据调用的方法以及属性 属性 属性 sDate eDate RateCodeList

类型 string string object

描述

预订最早日期 预订最迟日期 价格代码表 交通代码 订单状态

服务器相关配置对象 酒店信息数组序列

说明

AirportTransCode object OrderStatus WebData HotelIndex 方法

object object object

方法 LoadCity()

LoadCityEnd(citylist) LoadGroups() LoadGroupsEnd() LoadBrands() LoadBrandsEnd() LoadTopCityHotel(cityids)

描述

加载城市名称列表信息

参数说明 无参数

加载城市名称列表信息结束后回调方法 (需要城市列表调用端进行方法重写 ) 对象 加载集团品牌信息

加载集团品牌信息结束后回调方法 (需要调用

端进行方法重写 ) 加载酒店品牌信息

加载酒店品牌信息结束后回调方法 (需要调用

端进行方法重写 )

加载推荐城市酒店列表信息结束后回调方法

(需要调用端进行方法重写 )

城市推荐

加载推荐城市酒店列表信息结束后回调方法

酒店对象

(需要调用端进行方法重写 )

列表 加载酒店促销列表信息

LoadTopCityHotelEnd(citylist) LoadHSales()

LoadHSalesEnd(sales) LoadHotelPricesEnd(priceslist) LoadSearchResult(filter)

加载酒店促销列表信息结束后回调方法 (需要促销信息调用端进行方法重写 ) 对象列表 加载酒店价格结束后回调方法 (需要调用端进

行方法重写) 搜索酒店列表结果

加载酒店集团,城市行政区,商业区,酒店类型,

LoadCityDisComGroupEnd(group,dis,com,type,brand) 酒店品牌信息,酒店类型结束后回调方法需要调

用端进行方法重写) LoadCityHotelEnd(hotels,locals) LoadRoomList(select) LoadRoomListEnd(roomlist) LoadRoomsList(select) LoadRoomsListEnd(roomlists) LoadGroupList(groupid)

LoadGroupListEnd(hotellist,citylist) LoadBrandList(brandid)

LoadBrandListEnd(hotellist,citylist)

搜索酒店列表结果结束后回调方法 (需要调用

端进行方法重写 ) 加载酒店房型列表信息

加载酒店房型列表信息结束后回调方法(需要调

用端进行方法重写 ) 加载一家酒店房型列表信息

加载多家酒店房型列表信息结束后回调方法(需

要调用端进行方法重写 ) 加载集团酒店列表信息

加载集团酒店列表信息结束后回调方法 (需要

调用端进行方法重写 ) 加载品牌酒店列表信息

加载品牌酒店列表信息结束后回调方法 (需要

调用端进行方法重写 )

LoadNearPointList(latlng) LoadNearPointListEnd(hotellist) LoadHotelInfo(select)

LoadHotelInfoEnd(hotelinfo,aircodes,photos) LoadCommendHotels(select) 加载指定坐标位置附近酒店列表信息

加载指定坐标位置附近酒店列表信息结束后方

法 (需要调用端进行方法重写 ) 加载酒店信息

加载酒店信息结束后回调方法 (需要调用端进

行方法重写 ) 加载周边推荐酒店列表

LoadCommendHotelsEnd(hotels) 加载周边推荐酒店列表结束后回调方法 (需要

调用端进行方法重写 )

LoadRateList(select) 加载酒店房型实时价格列表信息

LoadRateListEnd(roomlist) 加载酒店房型实时价格列表信息结束后回调方

法 (需要调用端进行方法重写 )

LoadOrderInfo(select)

加载酒店预订内容基本信息

LoadOrderInfoEnd(hotelinfo,orderinfo,ratelist,exp) 加载酒店预订内容基本信息结束后回调方法

(需要调用端进行方法重写 )

GetImgCode(img) 获取验证码图片 SendCode(mobile,code)

发送手机确认码

SendCodeEnd(IsSucceed,errormsg) 发送手机确认码结束后回调方法 (需要调用端

进行方法重写 )

CheckCode(checkcode)

校验手机确认码

CheckCodeEnd(IsTrue,errormsg) 校验手机确认码结束后回调方法 (需要调用端

进行方法重写 )

OrderPost(order)

酒店订单预订提交

OrderPostEnd(confnum,emsg,guid,semail,sfax,smsg) 预订提交结束后回调方法 (需要调用端进行方

法重写)

LoadResvInfo(select)

加载订单信息

LoadResvInfoEnd(reservationinfo,ratelist,exp) 加载订单信息结束后回调方法 (需要调用端进

行方法重写 )

ModResvInfo(update)

提交订单修改信息

ModResvInfoEnd(emsg,semail) 提交订单修改结束信息后回调方法 (需要调用

端进行方法重写 )

CancelResvInfo()

取消订单

CancelResvInfoEnd(emsg,semail) 取消订单结束后回调方法 (需要调用端进行方

法重写 )

ReSendEmail() 重发预订确认信

ReSendEmailEnd(msg)

重发预订确认信结束后回调方法 (需要调用端

json视频篇五
《json和数组转换》

//安卓视频教程:微信公众平台开发的基础教程案例:今日正则:反斜杠的写错,{}忘记用\{转义了,\w,这样写才正确w\,{\错误,出错经常在这里telnet命令的用法:在window7下进入黑窗口,输入时总提示:不是外部命令或者内部命令,解决办法:一般是要自己配置的,打开控制面板,找到程序或程序功能,然后在左边有个打开或关闭windows功能,点击它,然后把telnet的客户端和 服务器勾上就可以了。 //5.13php定界符写js,跳转地址的几种错误:(1)window.location.href=$url;$url没有用双引号引起。(2)url字符串拼接发生的错误:错误写法<?php $url='$script=<<< abcwindow.loaction.herf=$url."01.php";abc;echo $script;?>正确写法:在外面拼接好了,再放进去就解决问题了<?php $url='$script=<<< abcwindow.loaction.herf="$url";abc;echo $script;?>ci框架遇到的问题继承ci数据库model出现的错误原因:问题所在:写了个publicmodel继承了ci框架的CI_MODEL,然后在mvc里的m写一model继承publicmodel,当我调用ci一query()方法时候报错了,后来在m写的model里的构造函数加上$this->load->database();就解决问题了。。。//5.27/********************插入的补充*********************************************进一步发现:是自己在c层里写的控制器写的构造函数里的header('Content-Type:text/html; charset=utf-8');这行代码写成了:header('Content-Type:textml; charset=utf-8');所以造成了这样的错误,但是在m层写的model里的构造函数加上$this->load->database();也是可以解决问题的,至于原因,没有深究//6.25****************************************************************************/ci框架c层里的文件夹的子文件夹里调用不了控制器的方法,好像要配置下,具体做法无做,当时就把子文件里的文件放回他的父文件那里去了。json数组相互转换;json转数组:json_decode($arr,true);封装函数:protected function splitJsonString($jsonString){if(empty($jsonString)){return -3;}//判断是否为JSON格式if(is_null(json_decode($jsonString))){//不是json格式return -3;}else{//分拆JSON字符串return json_decode($jsonString,true);}}数组转json:json_encode($str)封装函数:public function JSON($array) { $this->arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json); }private function arrayRecursive(&$array, $function, $apply_to_keys_also = false) { static $recursive_counter = 0; if (++$recursive_counter > 1000) {

die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { $this->arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--;} //ci路径问题的探讨6.25在confing文件夹里的config.php配置文件里设置base_url的值如:$config['base_url'] = '调用c层的某一方法:如:$url=base_url()."yunjian/ag_basenum(控制器)/createnum(方法)";ag_basenum.php的绝对路径是:D:\wamp\所以根据这个路径分析:D:\wamp\$url=base_url()."yunjian/ag_basenum(控制器)/createnum(方法)";可以看出是忽略了application\controllers这两个文件夹了,这个应该是ci的内部处理结果。获取二进制流图片,再将二进制流图片写入文件保存,再用getimagesize获取图片信息大小2014-7-23生成大中小缩略图代码function makeThumb($ori_img, $new_img, $percent=50, $width=0, $height=0){$original = getimagesize($ori_img); //得到图片的信息,可以print_r($original)发现它就是一个数组//$original[2]是图片类型,其中1表示gif、2表示jpg、3表示pngswitch($original[2]){case 1 : $s_original = imagecreatefromgif($ori_img);break;case 2 : $s_original = imagecreatefromjpeg($ori_img);break;case 3 : $s_original = imagecreatefrompng($ori_img);break;}if($percent > 0){$width = $original[0] * $percent / 100;$width = ($width > 0) ? $width : 1;$height = $original[1] * $percent / 100;$height = ($height > 0) ? $height : 1;}//创建一个真彩的画布$canvas = imagecreatetruecolor($width,$height);imagecopyresized($canvas, $s_original, 0, 0, 0, 0, $width, $height, $original[0], $original[1]);//header("Content-type:image/jpeg");//imagejpeg($canvas); //向浏览器输出图片$loop = imagejpeg($canvas, $new_img,2); //生成新的图片if($loop){echo "OK!<br/>";}}//makeThumb("images/11.jpg","images/suoluejiede.jpg",100,192,120); //生成原图15%的缩略图//makeThumb("images/01.jpg","images/suolue5.jpg",300,200,120); //生成宽为200px,高为120px的缩略图// makeThumb("images/01.jpg","images/suolue6.jpg",400,200,120); //生成原图15%的缩略图(参数都填时,百分率优先级大)//生成日期目录function make_dir(){$dir = date('Y/m/d/',time());//日期目录//判断目录是否存在if (is_dir($dir)) {// 如果不存在

,按照年月日创建if(@mkdir($dir, 0777,true)==false){//return -22;//创建目录失败echo -22;}//$a=@mkdir($dir, 0777,true);//var_dump($a);}$temp="qwertyuiopasdfghjklzxcvbnm0123456789";$name=substr(str_shuffle($temp),0,10);//图片随机名,打乱字符串$path=$dir.$name.".png";echo $path;}时间格式a - "am" 或是 "pm"A - "AM" 或是 "PM"d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"D - 星期几,三个英文字母; 如: "Fri"F - 月份,英文全名; 如: "January"h - 12 小时制的小时; 如: "01" 至 "12"H - 24 小时制的小时; 如: "00" 至 "23"g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"i - 分钟; 如: "00" 至 "59"j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"l - 星期几,英文全名; 如: "Friday"m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"M - 月份,三个英文字母; 如: "Jan"s - 秒; 如: "00" 至 "59"S - 字尾加英文序数,二个英文字母; 如: "th","nd"t - 指定月份的天数; 如: "28" 至 "31"U - 总秒数w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)Y - 年,四位数字; 如: "1999"y - 年,二位数字; 如: "99"z - 一年中的第几天; 如: "0" 至 "365"

json视频篇六
《全国所地市经纬度JSON格式》

var mMapPlace = [{"name":"北京市", "log":"116.46", "lat":"39.92", "children":[{"name":"北京", "log":"116.46", "lat":"39.92"},{"name":"平谷", "log":"117.1", "lat":"40.13"},{"name":"密云", "log":"116.85", "lat":"40.37"},{"name":"顺义", "log":"116.65", "lat":"40.13"},{"name":"通县", "log":"116.67", "lat":"39.92"},{"name":"怀柔", "log":"116.62", "lat":"40.32"},{"name":"大兴", "log":"116.33", "lat":"39.73"},{"name":"房山", "log":"115.98", "lat":"39.72"},{"name":"延庆", "log":"115.97", "lat":"40.47"},{"name":"昌平", "log":"116.2", "lat":"40.22"}]},{"name":"上海市", "log":"121.48", "lat":"31.22", "children":[{"name":"上海", "log":"121.48", "lat":"31.22"},{"name":"嘉定", "log":"121.24", "lat":"31.4"},{"name":"宝山", "log":"121.48", "lat":"31.41"},{"name":"川沙", "log":"121.7", "lat":"31.19"},{"name":"南汇", "log":"121.76", "lat":"31.05"},{"name":"奉贤", "log":"121.46", "lat":"30.92"},{"name":"松江", "log":"121.24", "lat":"31"},{"name":"金山", "log":"121.16", "lat":"30.89"},{"name":"青浦", "log":"121.1", "lat":"31.15"},{"name":"崇明", "log":"121.4", "lat":"31.73"}]},{"name":"天津市", "log":"117.2", "lat":"39.13", "children":[{"name":"天津", "log":"117.2", "lat":"39.13"},{"name":"宁河", "log":"117.83", "lat":"39.33"},{"name":"静海", "log":"116.92", "lat":"38.93"},{"name":"蓟县", "log":"117.4", "lat":"40.05"},{"name":"宝坻", "log":"117.3", "lat":"39.75"},{"name":"武清", "log":"117.05", "lat":"39.4"}]},{"name":"重庆市", "log":"106.54", "lat":"29.59", "children":[{"name":"重庆", "log":"106.54", "lat":"29.59"},{"name":"綦江", "log":"106.56", "lat":"29.41"},{"name":"长寿", "log":"106.64", "lat":"29.01"},{"name":"南桐", "log":"107.04", "lat":"29.86"},{"name":"合川", "log":"106.28", "lat":"29.26"},{"name":"潼南", "log":"106.22", "lat":"30.03"},{"name":"铜梁", "log":"105.8", "lat":"30.16"},{"name":"壁山", "log":"106.03", "lat":"29.86"},{"name":"荣昌", "log":"106.21", "lat":"29.62"},{"name":"大足", "log":"105.59", "lat":"29.4"},{"name":"永川", "log":"105.71", "lat":"29.75"},{"name":"万盛", "log":"105.91", "lat":"29.38"}]},{"name":"河北省", "log":"114.48", "lat":"38.03", "children":[{"name":"石家庄", "log":"114.48", "lat":"38.03"},{"name":"唐山", "log":"118.02", "lat":"39.63"},{"name":"行唐", "log":"114.54", "lat":"38.42"},{"name":"灵寿", "log":"114.38", "lat":"38.31"},{"name":"束鹿", "log":"115.18", "lat":"37.94"},{"name":"晋县", "log":"115.03", "lat":"38.03"},{"name":"藁城", "log":"114.84", "lat":"38.03"},{"name":"高邑", "log":"114.58", "lat":"37.62"},{"name":"赵县", "log":"114.78", "lat":"37.76"},{"name":"井陉", "log":"114.13", "lat":"38.03"},{"name":"获鹿", "log":"114.03", "lat":"38.08"},{"name":"新乐", "log":"114.67", "lat

":"38.33"},{"name":"正定", "log":"114.56", "lat":"38.13"},{"name":"深泽", "log":"115.2", "lat":"38.2"},{"name":"无极", "log":"114.96", "lat":"38.16"},{"name":"赞皇", "log":"114.35", "lat":"37.65"},{"name":"元氏", "log":"114.5", "lat":"37.74"},{"name":"栾城", "log":"114.64", "lat":"38.87"},{"name":"平山", "log":"114.24", "lat":"38.2"},{"name":"邯郸", "log":"114.47", "lat":"36.6"},{"name":"永年", "log":"114.5", "lat":"36.77"},{"name":"曲周", "log":"114.92", "lat":"36.78"},{"name":"馆陶", "log":"115.4", "lat":"36.47"},{"name":"魏县", "log":"114.94", "lat":"36.37"},{"name":"成安", "log":"114.68", "lat":"36.43"},{"name":"大名", "log":"115.14", "lat":"36.28"},{"name":"涉县", "log":"113.67", "lat":"36.57"},{"name":"鸡泽", "log":"113.85", "lat":"36.95"},{"name":"丘县", "log":"115.18", "lat":"36.84"},{"name":"广平", "log":"114.94", "lat":"36.49"},{"name":"肥乡", "log":"114.8", "lat":"36.56"},{"name":"临漳", "log":"114.62", "lat":"36.35"},{"name":"磁县", "log":"114.37", "lat":"36.37"},{"name":"武安", "log":"114.2", "lat":"36.7"},{"name":"邢台", "log":"114.48", "lat":"37.05"},{"name":"柏乡", "log":"114.68", "lat":"37.49"},{"name":"宁普", "log":"114.9", "lat":"37.62"},{"name":"隆尧", "log":"114.75", "lat":"37.35"},{"name":"临西", "log":"115.5", "lat":"36.87"},{"name":"南官", "log":"115.37", "lat":"37.37"},{"name":"巨鹿", "log":"115.03", "lat":"37.22"},{"name":"任县", "log":"114.68", "lat":"37.11"},{"name":"沙河", "log":"114.52", "lat":"36.94"},{"name":"临城", "log":"114.5", "lat":"37.43"},{"name":"内丘", "log":"114.5", "lat":"37.28"},{"name":"新河", "log":"115.22", "lat":"37.53"},{"name":"清河", "log":"115.67", "lat":"37.07"},{"name":"威县", "log":"115.08", "lat":"36.97"},{"name":"广宗", "log":"115.14", "lat":"37.06"},{"name":"平乡", "log":"115.02", "lat":"37.06"},{"name":"南和", "log":"114.71", "lat":"37"},{"name":"保定", "log":"115.48", "lat":"38.85"},{"name":"涞水", "log":"115.71", "lat":"39.39"},{"name":"涿县", "log":"115.98", "lat":"39.48"},{"name":"定兴", "log":"115.78", "lat":"39.28"},{"name":"容城", "log":"115.86", "lat":"39.06"},{"name":"安新", "log":"115.92", "lat":"38.92"},{"name":"蠡县", "log":"115.58", "lat":"38.49"},{"name":"博野", "log":"115.46", "lat":"38.46"},{"name":"定县", "log":"114.02", "lat":"38.52"},{"name":"阜平", "log":"114.18", "lat":"38.85"},{"name":"唐县", "log":"114.97", "lat":"38.75"},{"name":"涞源", "log":"114.67", "lat":"39.37"},{"name":"易县", "log":"115.49", "lat":"39.35"},{"name":"新城", "log":"115.84", "lat":"39.34"},{"name":"雄县", "log":"116.1", "lat":"38.98"},{"name":"徐水", "log":"115.65", "lat":"39.02"},{"name":"高阳", "log":"115.78", "lat":"38.68"},{"name":"安国", "log":"115.3", "l

at":"38.41"},{"name":"清苑", "log":"115.47", "lat":"38.76"},{"name":"望都", "log":"115.14", "lat":"38.71"},{"name":"曲阳", "log":"114.68", "lat":"38.62"},{"name":"完县", "log":"115.12", "lat":"38.84"},{"name":"满城", "log":"115.45", "lat":"38.95"},{"name":"张家口", "log":"114.87", "lat":"40.82"},{"name":"康保", "log":"114.6", "lat":"41.87"},{"name":"赤城", "log":"115.82", "lat":"40.92"},{"name":"怀来", "log":"115.54", "lat":"40.4"},{"name":"蔚县", "log":"114.53", "lat":"39.83"},{"name":"宣化", "log":"115.03", "lat":"40.63"},{"name":"张北", "log":"114.7", "lat":"41.15"},{"name":"沽源", "log":"115.68", "lat":"41.68"},{"name":"崇礼", "log":"115.25", "lat":"40.98"},{"name":"涿鹿", "log":"115.2", "lat":"40.37"},{"name":"阳原", "log":"114.15", "lat":"40.12"},{"name":"怀安", "log":"114.38", "lat":"40.67"},{"name":"尚义", "log":"113.95", "lat":"41.05"},{"name":"万全", "log":"114.73", "lat":"40.84"},{"name":"承德", "log":"117.93", "lat":"40.97"},{"name":"围场", "log":"117.72", "lat":"41.95"},{"name":"平泉", "log":"118.68", "lat":"41.02"},{"name":"宽城", "log":"118.47", "lat":"40.62"},{"name":"兴隆", "log":"117.48", "lat":"40.42"},{"name":"滦平", "log":"117.53", "lat":"40.95"},{"name":"隆化", "log":"117.7", "lat":"41.32"},{"name":"青龙", "log":"118.93", "lat":"40.43"},{"name":"丰宁", "log":"116.63", "lat":"41.2"},{"name":"秦皇岛", "log":"119.57", "lat":"39.95"},{"name":"迁西", "log":"118.3", "lat":"40.15"},{"name":"迁安", "log":"118.69", "lat":"40.02"},{"name":"昌黎", "log":"119.15", "lat":"39.72"},{"name":"卢龙", "log":"118.85", "lat":"39.89"},{"name":"滦南", "log":"118.67", "lat":"39.49"},{"name":"玉田", "log":"117.9", "lat":"39.9"},{"name":"唐海", "log":"118.54", "lat":"39.31"},{"name":"遵化", "log":"117.97", "lat":"40.2"},{"name":"抚宁", "log":"119.22", "lat":"39.88"},{"name":"乐亭", "log":"118.9", "lat":"39.43"},{"name":"滦县", "log":"118.73", "lat":"39.74"},{"name":"丰南", "log":"118.1", "lat":"39.58"},{"name":"丰润", "log":"118.13", "lat":"39.82"},{"name":"廊坊", "log":"116.7", "lat":"39.53"},{"name":"安次", "log":"116.69", "lat":"39.52"},{"name":"三河", "log":"117.06", "lat":"39.97"},{"name":"香河", "log":"117", "lat":"39.76"},{"name":"霸县", "log":"116.38", "lat":"39.12"},{"name":"固安", "log":"116.29", "lat":"39.44"},{"name":"大城", "log":"116.63", "lat":"38.7"},{"name":"文安", "log":"116.45", "lat":"38.87"},{"name":"永清", "log":"116.48", "lat":"39.32"},{"name":"大厂", "log":"116.98", "lat":"39.98"},{"name":"沧州", "log":"116.83", "lat":"38.33"},{"name":"黄骅", "log":"117.33", "lat":"38.4"},{"name":"盐山", "log":"117.22", "lat":"38.07"},{"name":"吴桥", "log":"116.37", "lat":"37.65"},{"name":"东光", "log":"11

6.52", "lat":"37.89"},{"name":"肃宁", "log":"115.82", "lat":"38.43"},{"name":"河间", "log":"116.07", "lat":"38.45"},{"name":"泊头", "log":"116.56", "lat":"38.08"},{"name":"交河", "log":"116.27", "lat":"38.02"},{"name":"青县", "log":"116.8", "lat":"38.58"},{"name":"海兴", "log":"117.85", "lat":"38.17"},{"name":"南皮", "log":"116.7", "lat":"38.05"},{"name":"任丘", "log":"116.08", "lat":"38.72"},{"name":"献县", "log":"116.12", "lat":"38.2"},{"name":"孟村", "log":"117.1", "lat":"38.06"},{"name":"衡水", "log":"115.72", "lat":"37.72"},{"name":"饶阳", "log":"115.74", "lat":"38.24"},{"name":"阜城", "log":"116.14", "lat":"37.87"},{"name":"景县", "log":"116.26", "lat":"37.69"},{"name":"枣强", "log":"115.72", "lat":"37.52"},{"name":"深县", "log":"115.56", "lat":"38.02"},{"name":"安平", "log":"115.5", "lat":"38.22"},{"name":"武强", "log":"115.96", "lat":"38.03"},{"name":"武邑", "log":"115.9", "lat":"37.81"},{"name":"故城", "log":"115.96", "lat":"37.36"},{"name":"冀县", "log":"115.56", "lat":"37.59"}]},{"name":"山西省", "log":"112.53", "lat":"37.87", "children":[{"name":"太原", "log":"112.53", "lat":"37.87"},{"name":"阳曲", "log":"112.65", "lat":"38.05"},{"name":"娄烦", "log":"111.78", "lat":"38.05"},{"name":"清徐", "log":"112.33", "lat":"37.62"},{"name":"大同", "log":"113.3", "lat":"40.12"},{"name":"阳泉", "log":"113.57", "lat":"37.85"},{"name":"长治", "log":"113.08", "lat":"36.18"},{"name":"天镇", "log":"114.08", "lat":"40.42"},{"name":"灵丘", "log":"114.2", "lat":"39.47"},{"name":"怀仁", "log":"113.1", "lat":"39.82"},{"name":"山阴", "log":"112.82", "lat":"39.52"},{"name":"平鲁", "log":"112.12", "lat":"39.53"},{"name":"右玉", "log":"112.33", "lat":"40.18"},{"name":"阳高", "log":"113.72", "lat":"40.38"},{"name":"广灵", "log":"113.27", "lat":"39.75"},{"name":"浑源", "log":"113.68", "lat":"39.7"},{"name":"应县", "log":"113.18", "lat":"39.58"},{"name":"朔县", "log":"112.42", "lat":"39.32"},{"name":"左云", "log":"112.67", "lat":"40.02"},{"name":"忻县", "log":"112.7", "lat":"38.38"},{"name":"代县", "log":"112.97", "lat":"39.07"},{"name":"五台", "log":"113.32", "lat":"38.72"},{"name":"静乐", "log":"111.9", "lat":"38.37"},{"name":"保德", "log":"111.09", "lat":"38.01"},{"name":"河曲", "log":"111.17", "lat":"39.38"},{"name":"神池", "log":"112.17", "lat":"39.1"},{"name":"原平", "log":"112.7", "lat":"38.73"},{"name":"繁峙", "log":"113.28", "lat":"39.2"},{"name":"定襄", "log":"112.95", "lat":"38.5"},{"name":"岢岚", "log":"111.58", "lat":"38.7"},{"name":"五寨", "log":"111.82", "lat":"38.93"},{"name":"偏关", "log":"111.47", "lat":"39.45"},{"name":"宁武", "log":"112.28", "lat":"39"},{"name":"榆次", "log":"112.72", "lat":"37.68"},{"name"

:"孟县", "log":"113.37", "lat":"38.01"},{"name":"昔阳", "log":"113.68", "lat":"37.62"},{"name":"左权", "log":"113.35", "lat":"37.07"},{"name":"太谷", "log":"112.53", "lat":"37.42"},{"name":"平遥", "log":"112.18", "lat":"37.2"},{"name":"灵石", "log":"111.77", "lat":"36.83"},{"name":"寿阳", "log":"113.17", "lat":"37.88"},{"name":"平定", "log":"113.62", "lat":"37.79"},{"name":"和顺", "log":"113.55", "lat":"37.33"},{"name":"榆社", "log":"112.97", "lat":"37.08"},{"name":"祁县", "log":"112.33", "lat":"37.36"},{"name":"介休", "log":"111.88", "lat":"37.03"},{"name":"离石", "log":"111.13", "lat":"37.53"},{"name":"兴县", "log":"111.22", "lat":"38.47"},{"name":"方由", "log":"111.24", "lat":"37.86"},{"name":"岚县", "log":"111.62", "lat":"38.28"},{"name":"交城", "log":"112.14", "lat":"37.55"},{"name":"文水", "log":"112.02", "lat":"37.42"},{"name":"汾阳", "log":"111.75", "lat":"37.27"},{"name":"孝义", "log":"111.8", "lat":"37.12"},{"name":"交口", "log":"111.2", "lat":"36.97"},{"name":"石楼", "log":"110.83", "lat":"37"},{"name":"中阳", "log":"111.17", "lat":"37.37"},{"name":"临县", "log":"110.95", "lat":"37.95"},{"name":"柳林", "log":"110.85", "lat":"37.45"},{"name":"襄垣", "log":"113.02", "lat":"36.55"},{"name":"黎城", "log":"113.4", "lat":"36.56"},{"name":"壶关", "log":"113.23", "lat":"35.11"},{"name":"高平", "log":"112.88", "lat":"35.48"},{"name":"阳城", "log":"112.38", "lat":"35.84"},{"name":"长子", "log":"112.87", "lat":"36.13"},{"name":"沁源", "log":"112.32", "lat":"36.5"},{"name":"潞城", "log":"113.22", "lat":"36.33"},{"name":"武乡", "log":"112.83", "lat":"36.83"},{"name":"平顺", "log":"113.43", "lat":"36.19"},{"name":"陵川", "log":"113.27", "lat":"35.78"},{"name":"晋城", "log":"112.83", "lat":"35.52"},{"name":"沁水", "log":"112.15", "lat":"35.67"},{"name":"屯留", "log":"112.87", "lat":"36.32"},{"name":"沁县", "log":"112.68", "lat":"36.75"},{"name":"临汾", "log":"111.5", "lat":"36.08"},{"name":"汾西", "log":"111.53", "lat":"36.63"},{"name":"安泽", "log":"112.2", "lat":"36.15"},{"name":"古县", "log":"111.9", "lat":"36.29"},{"name":"翼城", "log":"111.68", "lat":"35.73"},{"name":"曲沃", "log":"111.33", "lat":"35.63"},{"name":"吉县", "log":"110.65", "lat":"36.12"},{"name":"大宁", "log":"110.72", "lat":"36.47"},{"name":"侯马", "log":"111.45", "lat":"35.03"},{"name":"永和", "log":"110.64", "lat":"36.62"},{"name":"洪洞", "log":"111.68", "lat":"36.25"},{"name":"霍县", "log":"111.72", "lat":"36.57"},{"name":"浮山", "log":"111.83", "lat":"35.97"},{"name":"襄汾", "log":"111.43", "lat":"35.86"},{"name":"乡宁", "log":"110.8", "lat":"35.97"},{"name":"蒲县", "log":"111.07", "lat":"36.42"},{"name":"运城", "log":"110.97", "lat":"35.03"},

json视频篇七
《json解析:FastJson 使用》

六式瑜伽扫空疲倦

14-4-15json解析:[2]fastjson 使用_百度经验

经验fastjson

搜索经验首页

分类

杂志

任务

回享计划

说明书

商城

知道

百度经验 > 游戏/数码 > 电脑 > 电脑软件

json解析:[2]fastjson 使用

|浏览:303|更新:2014-02-17 11:19

利用阿里的fastjson包对对象进行 json的转化与解析,本篇为第二篇,第一篇讲述的是利用gson进行json数据解析,地址:jingyan.baidu.com/article/e8cdb32b619f8437042bad53.html常用类型

类型一:JavaBean类型二:List<JavaBean>类型三:List<String>

类型四:List<Map<String,Object>>

将上面的四种数据对象转换成json字符串的方法都是一样的String jsonString = JSON.toJSONString(obj);

工具/原料

fastjson.jar下载地址 pan.baidu.com/s/1i3ysuaD

方法/步骤

将json字符串转化成JavaBean对象Person person = new Person("1","fastjson",1);//这里将javabean转化成json字符串

String jsonString = JSON.toJSONString(person);//这里将json字符串转化成javabean对象,

person =JSON.parseObject(jsonString,Person.class);

将json字符串转化成List<JavaBean>对象Person person1 = new Person("1","fastjson1",1);Person person2 = new Person("2","fastjson2",2);List<Person> persons = new ArrayList<Person>();persons.add(person1);persons.add(person2);

String jsonString = JSON.toJSONString(persons);System.out.println("json字符串:"+jsonString);//解析json字符串

List<Person> persons2 = JSON.parseArray(jsonString,Person.class);

将json字符串转化成List<String>对象List<String> list = new ArrayList<String>();list.add("fastjson1");list.add("fastjson2");

| |

| (0) |

帮助

分享有回报:昨日最高收入92元

1

收藏

加入杂志

youshuang66

作者的经验

android屏幕适配方法android tabhost用法

json解析:[1]gson解析jsonandroid命名规范制作u盘启动工具的方法

内容推荐

怎样做奶沫鸳鸯奶茶11春季心情烦躁怎么办25怎样拯救办公室的辐射肌肤

190如何让孩子爱上阅读32如何合理进行家居收纳

73

如要投诉,请到百度经验投诉中心,如要提出意见、建议, 请到百度经验管理吧反馈。

14-4-15json解析:[2]fastjson 使用_百度经验

list.add("fastjson3");

String jsonString = JSON.toJSONString(list);System.out.println("json字符串:"+jsonString);//解析json字符串

List<String> list2 = JSON.parseObject(jsonString,new TypeReference<List<String>>(){});

将json字符串转化成List<Map<String,Object>>对象Map<String,Object> map = new HashMap<String,Object>();

1好好学习,天天签到!小map.put("key1", "value1");2map.put("key2", "value2");

度wifi人手一份,想要的戳这里》

Map<String,Object> map2 = new HashMap<String,Object>();3

map2.put("key1", 1);

4

map2.put("key2", 2);

List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();list.add(map);list.add(map2);

String jsonString = JSON.toJSONString(list);System.out.println("json字符串:"+jsonString);//解析json字符串

List<Map<String,Object>> list2 = JSON.parseObject(jsonString,new TypeReference<List<Map<String,Object>>>(){});

5

END

为了大家学习使用的方便,将测试java项目打包上传到了百度网盘,下载地址pan.baidu.com/s/1jGskEb0

json解析 (共2篇)上一篇:gson解析json

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

举报

有用 收藏 评论(0)

相关经验

怎样使用Gson 解析 (deserialize) json字符串如何使用JSON Framework库解析与生成json数据Android从服务端获取json解析显示在客户端上面iOS 中json解析数据出现中文乱码的问题json解析:[1]gson解析json

21857

2014.02.242013.05.302013.09.112013.05.222014.02.17

相关标签 windows7 android excel

热门杂志

14-4-15json解析:[2]fastjson 使用_百度经验

第2期第1期第1期第1期第37期

新人玩转百度经验

Win8.1实用小技巧

小白装大神

帮你挑手机

轻松办公从这里开始

25次分享

87次分享

100次分享

23次分享

386次分享

©2014Baidu 使用百度前必读 百度经验协议 作者创作作品协议

json视频篇八
《使用PHP、jQuery和JSON创建公共API》

使用PHP、jQuery和JSON创建公共API

本章教程将为大家展示一个使用PHP、jQuery和JSON创建公共API的简单方法。

首先,我们需要一个连接数据库的文件 connection.php

<?PHP

/*PHP Public API*/

//connection to the database

mysql_connect("HOST_NAME","USER_NAME","PASSWORD") OR DIE (mysql_error());

mysql_select_db("DATABASE") OR DIE (mysql_error());

?>

创建api.php

首先包含数据库连接文件,然后检查一个存在的函数是否被调用。

下面我们就开始创建这个名叫allUsers()的函数,用来从数据库选择所有用户,并将返回值存放到数组里,通过遍历数组将他们放入单独的数组中。对于JSON,我们使用了PHP的json_encode()函数。

<?PHP

/*PHP Public API*/

//Include the database connection

include('connection.php');

//Now we check if the function exists

if(function_exists($_GET['method'])){

//Call the passed function

$_GET['method']();

}

//Here is the function to get

function allUsers(){

//Get all users from the database

$sql_users=mysql_query("SELECT * FROM users") OR DIE (mysql_error());

//New array called users

$users=array();

//Loop through each result and put each result into a single array

while($user=mysql_fetch_array($sql_users)){

$users[]=$user;

}

//Set $users to json encode $users

$users=json_encode($users);

//Okay here is the JSONP

echo $_GET['jsoncallback'].'('.$users.')';

}

?>

对于jQuery

在$.getJSON()函数中的URL是这样的:

该方法设置method=allUsers ,并且jsoncallback 设置&jsoncallback=?

现在我们将遍历结果显示在DIV中

$(function() {

$.getJSON("function(dataGet) {

for(allUsers in dataGet) {

var user = dataGet[allUsers];

$("#output").append(user.name + "<br />");

}

});

});

最后的HTML代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"

<html lang="en">

<head>

<title>使用PHP、jQuery和JSON创建公共API实例演示 - UncleToo中文网</title>

<!-- Include the latest version of jQuery library -->

<script type="text/javascript" src="

ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<script type="text/javascript">

$(function() {

$.getJSON("function(dataGet) {

for(allUsers in dataGet) {

var user = dataGet[allUsers];

$("#output").append(user.name + "<br />");

}

});

});

</script>

</head>

<body>

<div id="output"></div>

</body>

</html>

来源:清源教育

json视频篇九
《Php 如何使用curl发送json格式数据实例》

Php 如何使用curl发送json格式数据实例

这篇文章主要介绍了php使用curl发送json格式数据的实例,大家参考使用吧 代码如下:

$urlcon= '

$data=' {

"button":[

{

"type":"click",

"name":"今日歌曲",

"key":"V1001_TODAY_MUSIC"

},

{

"type":"click",

"name":"歌手简介",

"key":"V1001_TODAY_SINGER"

},

{

"name":"菜单",

"sub_button":[

{

"type":"click",

"name":"hello word",

"key":"V1001_HELLO_WORLD"

},

{

"type":"click",

"name":"赞一下我们",

"key":"V1001_GOOD"

}]

}]

}';

$host = $urlcon;

$ch = curl_init();

$data = 'data='.$data;

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_URL,$host);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

echo $output = curl_exec($ch);

curl_close($ch);

来源:清源教育

本文来源:http://www.guakaob.com/yingyuleikaoshi/96658.html

    【json视频】相关推荐