json讀寫實例(js讀json)

本文目錄一覽:

c#讀取json

先聲明,以下兩個方法我一直用

肯定沒有問題

TXT讀取方法

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace WindowsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

this.rT1.Text = “”;

FileStream fs1 = new FileStream(“2.txt”, FileMode.Open);

StreamReader sr = new StreamReader(fs1);

string str1 = sr.ReadToEnd();

this.rT1.Text = str1;

sr.Close();

fs1.Close();

}

}

}

———————————————————————————-

以下是 json的 序列化和反序列化

.net3.5提供了json對象序列化與反序列化的類。位置在:System.Runtime.Serialization.Json空間下。其中如果要應用這個空間還必須添加對

System.ServiceModel

System.ServiceModel.Web

這兩個庫文件的引用。

參考實體類:Customer

public class Customer

{

public int Unid { get; set; }

public string CustomerName { get; set; }

}

DataContractJsonSerializer

將對象序列化為 JavaScript 對象表示法 (JSON),並將 JSON 數據反序列化為對象。無法繼承此類。

其中有個方法WriteObject,它的功能定義為:將對象序列化為 JavaScript 對象表示法 (JSON) 文檔

它有三個方法重載,其中一個為:

public override void WriteObject(Stream stream,Object graph)

它的功能描述這:將指定對象序列化為 JavaScript 對象表示法 (JSON) 數據,並將生成的 JSON 寫入流中

(一)序列化

public string ToJson(Customer customer)

{

DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(Customer));

MemoryStream ms=new MemoryStream();

ds.WriteObject(ms, customer);

string strReturn=Encoding.UTF8.GetString(ms.ToArray());

ms.Close();

return strReturn;

}

創建類實例,通過它的WriteObject方法來向流寫入序列化的對象,再把流寫入到字元串中。就可以得到JSON對象。

測試一下:

Customer cc = new Customer {Unid=1,CustomerName=”John” };

string strJson = ToJson(cc);

Console.WriteLine(strJson);

結果為:{“CustomerName”:”John”,”Unid”:1}

(二)反序列化

ReadObject方法,其描述為:反序列化 JSON(JavaScript 對象表示法)數據,並返回反序列化的對象。

它有很多重載,現在通過一種:

public override Object ReadObject(Stream stream)

它從流中得到反序列化的對象。

public object FromJson(string strJson)

{

DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(Customer));

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson));

return ds.ReadObject(ms);

}

測試:

string strJson=”{\”CustomerName\”:\”John\”,\”Unid\”:1}”;

Customer c=FromJson(strJson) as Customer;

Console.WriteLine(c.Unid+” “+c.CustomerName);

(三)通過泛型方法對兩者進行修改

為了適應多類型實例的序列化與反序列化,通過泛型方法來實現。

public string ToJsonT(T t)

{

DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));

MemoryStream ms = new MemoryStream();

ds.WriteObject(ms, t);

string strReturn = Encoding.UTF8.GetString(ms.ToArray());

ms.Close();

return strReturn;

}

public T FromJsonT(string strJson) where T:class

{

DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson));

return ds.ReadObject(ms) as T;

}

•反序列化時通過泛型約束來指定類型T為類類型。

測試:

Customer cc = new Customer {Unid=1,CustomerName=”John” };

string strJsons = ToJsonCustomer(cc);

Console.WriteLine(strJsons);

string strJson=”{\”CustomerName\”:\”John\”,\”Unid\”:1}”;

Customer c = FromJsonCustomer(strJson);

Console.WriteLine(c.Unid+” “+c.CustomerName);

PHP JSON格式數據交互實例代碼詳解

在PHP中解析JSON主要用到json_encode和json_decode兩個PHP

JSON函數,比PHP解析XML方便很多,下面詳細介紹下PHP

JSON的使用。

JSON基礎介紹

JSON(JavaScript

Object

Notation)

是一種輕量級的數據交換格式。

JSON主要有兩種結構:

「名稱/值」對的集合,在PHP中可以理解為關聯數組

(associative

array)。

值的有序列表(An

ordered

list

of

values)。在PHP中可以理解為普通數組(array)。

對象是一個無序的「『名稱/值’對」集合。一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「『名稱/值’

對」之間使用「,」(逗號)分隔。

數組是值(value)的有序集合。一個數組以「[」(左中括弧)開始,「]」(右中括弧)結束。值之間使用「,」(逗號)分隔。值(value)可以是雙引號括起來的字元串(string)、數值(number)、true、false、

null、對象(object)或者數組(array)。這些結構可以嵌套。

我目前對JSON的理解更偏向於數組,類似於PHP中的關聯數組,你可以將PHP數組轉換為JSON格式。

更多JSON的介紹請參考JSON官網和IBM關於JSON的介紹

PHP

JSON解析實例

PHP5.2開始已經將JSON作為PHP擴展的一部分,所以並不需要另外安裝JSON。另外為了保證下面的PHP

JSON實例不出現中文亂碼,請保證你的編碼格式為UTF8。

JSON是Javascript的一部分,首先我們看下Javascript中如何定義JSON

複製代碼

代碼如下:

var

json_obj

=

{‘WebName’:’PHP網站開發教程網’};

alert(json_obj.WebName);

var

json_arr

=[{‘WebName’:’PHP網站開發教程網’,’WebSite’:”},{‘ArtTitle’:’PHP

JSON實例講解’}]

alert(json_arr[1].ArtTitle);

var

php_json

=

[[‘PHP網站開發教程網’,”],[‘文章標題’,’PHP

JSON實例講解’]];

alert(php_json[1][0]);

在這段JSON實例代碼中我構建了所有的JSON形式,

第1行,定義了JSON以對象形式存在

第4行,定義了JSON以數組形式存在,嵌套了JSON對象,所以有點類似於PHP的關聯數組,其實仍然是對象。

第7行,定了JSON以普通數組形式存在。

注意:由於Javascript是區分大小寫的,所以訪問JSON關聯數組對象時注意key的大小寫問題。

PHP與JSON格式數據交互時,第一步需要將PHP數組轉換為JSON格式的數據,可使用PHP5自帶的json_encode函數,當PHP解析傳遞過來的JSON格式數據時需要使用json_decode函數進行解析轉換為PHP數組,PHP轉換並解析JSON數據的實例代碼如下

複製代碼

代碼如下:

?php

$json_arr

=

array(‘WebName’=’PHP網站開發教程網’,’WebSite’=”);

$php_json

=

json_encode($json_arr);

echo

$php_json;

$php_json

=

json_decode($php_json);

print_r($php_json);

?

說明:這裡通過PHP定義了關聯數組,然後通過json_encode轉換為JSON格式的數據,通過echo語句可以看到轉換後的JSON對象,通過PHP

JSON解析函數json_decode可以將JSON格式的數據解析為PHP的關聯數組。如果編碼不正確,JSON中文會出現亂碼。如果你使用Editplus調試PHP,請注意保存文件時編碼將ANSI改為UTF8。

最後我們來看下完整的PHP

JSON交互實例

複製代碼

代碼如下:

?php

$json_arr

=

array(‘WebName’=’PHP網站開發教程網’,’WebSite’=”);

$php_json

=

json_encode($json_arr);

?

script

type=”text/javascript”

var

php_json

=

?=$php_json?;

/script

script

type=”text/javascript”

function

php_json_dis(php_json)

{

alert(php_json.WebName);

alert(php_json.WebSite);

}

php_json_dis(php_json);

/script

至此,PHP通過json_encode和json_decode函數對JSON格式數據進行轉換和解析的實例就介紹完了。

java jSon實例編寫

是這麼個過程

1、在頁面用js發出個ajax請求,請求類型最好寫成json,建議使用jquery的ajax方法,省事。請求的路徑要配在web.xml中

2、這個請求路徑制定的是一個servlet,就是一個java類,繼承自httpservlet。這個servlet里可以通過request對象獲取到輸入參數,根據輸入參數和自己具體的邏輯拼出個字元串,當然是json格式的。然後輸出。這個不會寫說明你需要補一補java web開發的基礎知識。

3、在頁面的ajax請求的success方法中,直接可以獲取到返回的json對象,然後就根據你的json格式處理吧。

$.ajax({

url: ‘ajax/test’,//這個是servlet請求路徑

success: function(data) { //data就是servlet輸出的json格式字元串,這裡會自動轉化為json對象

alert(‘Load was performed.’);

}

});

Android讀取本地json文件的方法

本文實例講述了Android讀取本地json文件的方法。分享給大家供大家參考,具體如下:

1、讀取本地JSON ,但是顯示漢字亂碼

public static String readLocalJson(Context context, String fileName){ String jsonString=””; String resultString=””; try { BufferedReader bufferedReader=new BufferedReader(new InputStreamReader( context.getResources().getAssets().open(fileName))); while ((jsonString=bufferedReader.readLine())!=null) { resultString+=jsonString; } } catch (Exception e) { // TODO: handle exception } return resultString;}

2、讀取本地JSON,顯示漢字正確,txt文件設置時UTF-8,UNIX

public static String readLocalJson(Context context, String fileName){ String jsonString=””; String resultString=””; try { InputStream inputStream=context.getResources().getAssets().open(fileName); byte[] buffer=new byte[inputStream.available()]; inputStream.read(buffer); resultString=new String(buffer,”GB2312″); } catch (Exception e) { // TODO: handle exception } return resultString;}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/292969.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 18:38
下一篇 2024-12-25 18:38

相關推薦

發表回復

登錄後才能評論