在线解析json字符串

| 德国移民 |

【www.guakaob.com--德国移民】

篇一:《.net将多重嵌套的json字符串解析成对像》

.net将多重嵌套格式的json字符串转化为对象

以下将通过调用百度天气预报的接口为例进行讲解。

(这个Demo运用到几个技术:天气预报服务接口调用,.net后台通过HttpWebRequest请求“get/post”数据,多重嵌套格式的json字符串转化为对象)

1.百度天气预报接口:

(百度天气预报API:)

2.多重嵌套的json字符串:(已下是查询北京天气返回的json格式的数据)

3.现在进行用asp.net进行开发

前台代码:

后台代码:

protected void Page_Load(object sender, EventArgs e)

{

getWether("上?海£");

}

private void getWether(string city)

{

string url = "

try

{

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "get";

request.Timeout = 10000;

request.ContentType = "application/x-";

WebResponse response = request.GetResponse();

Stream s = response.GetResponseStream();

StreamReader sr = new StreamReader(s, System.Text.Encoding.GetEncoding("utf-8"));

string html = sr.ReadToEnd();

JavaScriptSerializer seria = new JavaScriptSerializer();

var list = seria.DeserializeObject(html);

///

//取?results对?象ó数簓组哩?

ArrayList arr = (ArrayList)li.Last().Value;

//将?resuls转羇化ˉ为a字?典?型í

Dictionary<string, object> arr03 = (Dictionary<string, object>)arr[0];//arr03 0代洙?表括?一?级? 3代洙?表括?第台?四?个?熟酣?悉¤即′result results result=new results();

result.currentCity = arr03.FirstOrDefault().Value.ToString();

result.pm25 = arr03.ElementAtOrDefault(1).Value.ToString(); var li = seria.Deserialize<Dictionary<string, Object>>(html);

篇二:《JS解析JSON数据及取值的用法》

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

<%@ page contentType="text/html;charset=GBK" language="java" %>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title>JS解析JSON数据</title>

</head>

<body style="margin:50px">

<center><h1><b>JS解析JSON数据测试界面</b></h1></center>

<script language="javascript">

//将JSON字符串转换为JSON对象的一些方法

//将JSON字符串转换为JSON对象的一些用法

(function (){

var str = {"name":"张三","age":20};//JSON对象

alert(str.name);alert(str.age);//直接取JSON对象的值

//将JSON字符串转换为JSON对象在线解析json字符串

var str = "{\"name\":\"张三\",\"age\":\"21\"}";//JSON字符串 转义不用系统/和dos一致用\

var obj = eval('(' + str + ')');//使用eval函数将JSON字符串转换为JSON对象 alert(obj.name);alert(obj.age);

var str = '{"name":"张三","age":22}';//JSON字符串

var obj = (new Function("return " + str))(); //使用new Function()形式将JSON字符串转换为JSON对象

alert(obj.name);alert(obj.age);

//将JSON对象转换为JSON字符串

//var straa = {"name":"李四","age":"20"};//JSON对象

//var newJSONtext = straa.toJSONString();//貌似没有原生方法

//alert("JSON对象转换为JSON字符串: "+newJSONtext);

})();//(function (){})();自动执行匿名函数

</script>

<script>

//取值的一些用法

//取值的一些用法

function showJSON() {

//效果一

var user =

{

"username":"andy",

"age":20,

"info": { "tel": "123456", "cellphone": "98765"},

"address":

[

{"city":"beijing","postcode":"222333"},

{"city":"newyork","postcode":"555666"}

]

}

alert(user.username);

alert(user.age);

alert(user.info.cellphone);在线解析json字符串

alert(user.address[0].city);

alert(user.address[0].postcode);

user.username = "Tom";

alert(user.username);

//效果二

var people =

{ "programmers": [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ],

"authors": [

{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },

{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ],

"musicians": [

{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },

{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ]

}

alert(people.programmers[0].firstName+" "+people.programmers[0].email); alert(people.programmers[2].firstName+" "+people.programmers[2].email);

alert(people.authors[0].firstName+" "+people.authors[0].genre);

alert(people.musicians[1].firstName+" "+people.musicians[1].instrument);在线解析json字符串

}

showJSON();

</script>

</body>

</html>

<script type="text/javascript">

function mm()

{

var str = "";

for (mm in window.event.srcElement)

str += mm+"="+ window.event.srcElement[mm] +"\n"; //得到 srcElement 的所有属性

alert(str);在线解析json字符串

}

</script>

篇三:《字符串转换成JSON的三种方式》

采用Ajax的项目开发过程中,经常需要将JSON格式的字符串返回到前端,前端解析成JS对象(JSON )。

ECMA-262(E3) 中没有将JSON概念写到标准中,但在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。 1,eval方式解析,恐怕这是最早的解析方式了。

function strToJson(str){

var json = eval('(' + str + ')');

return json;

}

记得str两旁的小括号哦。

2,new Function形式,比较怪异哦。

function strToJson(str){

var json = (new Function("return " + str))(); return json;

}

3,使用全局的JSON对象。

function strToJson(str){

return JSON.parse(str);

}

目前IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法。 使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下:

var str = '{name:"jack"}';

var obj = JSON.parse(str); // --> parse error

name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。

本文来源:http://www.guakaob.com/yimin/298419.html