① 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 ToJson<T>(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 FromJson<T>(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 = ToJson<Customer>(cc);
Console.WriteLine(strJsons);
string strJson="{\"CustomerName\":\"John\",\"Unid\":1}";
Customer c = FromJson<Customer>(strJson);
Console.WriteLine(c.Unid+" "+c.CustomerName);
② 如何從http數據包中讀取json數據並解析 c
根據具體格式看了 找找是否有格式頭
③ 求c#讀取txt文件裡面json代碼
你搜一個叫 Newtonsoft.Json 的dll,引用到項目中,就可以操作json了
讀取JSON
string jsonText = "['JSON!',1,true,{property:'value'}]";
JsonReader reader = new JsonReader(new StringReader(jsonText));
Console.WriteLine("TokenType\t\tValueType\t\tValue");
while (reader.Read())
{
Console.WriteLine(reader.TokenType + "\t\t" + WriteValue(reader.ValueType) + "\t\t" + WriteValue(reader.Value))
}
④ 如何讀取Json文件的數據
var json = { contry:{ area:{ man:"12萬", women:"10萬" } } };
//方式一:使用eval解析
var obj = eval(json);
alert(obj.constructor);
alert(obj.contry.area.women);
//方式二:使用Funtion函數
var strJSON = "{name:'json name'}";//得到的JSON
var obj = new Function("return" + strJSON)();//轉換後的JSON對象
alert(obj.name);//json name
alert(obj.constructor);
//復雜一點的json數組數據的解析
var value1 = [{"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"}, {"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"}, {"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}]; var obj1 = eval(value1);
alert(obj1[0].c01);
//復雜一點的json的另一種形式
var value2 = {"list":[ {"password":"1230","username":"coolcooldool"}, {"password":"thisis2","username":"okokok"}], "array":[{"password":"1230","username":"coolcooldool"},{"password":"thisis2","username":"okokok"}]};
var obj2 = eval(value2);
alert(obj2.list[0].password);
⑤ python怎麼讀取json文件內容
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C、C++、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網路傳輸速率)。
JSON在python中分別由list和dict組成。
這是用於序列化的兩個模塊:
json: 用於字元串和python數據類型間進行轉換
pickle: 用於python特有的類型和python的數據類型間進行轉換
Json模塊提供了四個功能:mps、mp、loads、load
pickle模塊提供了四個功能:mps、mp、loads、load
json mps把數據類型轉換成字元串 mp把數據類型轉換成字元串並存儲在文件中 loads把字元串轉換成數據類型 load把文件打開從字元串轉換成數據類型
json是可以在不同語言之間交換數據的,而pickle只在python之間使用。json只能序列化最基本的數據類型,josn只能把常用的數據類型序列化(列表、字典、列表、字元串、數字、),比如日期格式、類對象!josn就不行了。而pickle可以序列化所有的數據類型,包括類,函數都可以序列化。
事例:
mps:將python中的 字典 轉換為 字元串
⑥ json是什麼文件怎麼打開
先了解一下JSON:JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易於閱讀和編寫,同時也易於機器解析和生成。它基於ECMA262語言規范(1999-12第三版)中JavaScript編程語言的一個子集。
JSON採用與編程語言無關的文本格式,但是也使用了類C語言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的習慣,這些特性使JSON成為理想的數據交換格式。JSON屬於一個編寫軟體的文件,JSON文件在編寫軟體的平台中才打得開.
⑦ C語言讀取多行json文件數據 用哪種庫比較好, 具體怎麼操作
有的來是自 下面是超市 請自選 JSON_checker. YAJL. js0n. LibU. json-c. json-parser. jsonsl. WJElement. M's JSON parser. cJSON. Jansson. jsmn. cson. parson. ujson4c. nxjson.
⑧ C#怎麼從http上返回JSON數據並讀取
我之前做過網路和桌面應用的數據對接,你看看
/*
1、對象集合
*/
[DataContract]
publicclassItems
{
[DataMember]
publicList<ddd>ddd{get;set;}
publicItems()
{
ddd=newList<ddd>();
}
//把字元串轉換為對象
publicstaticItemsFormJson(stringjson)
{
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializera=newSystem.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Items));
using(MemoryStreamstream=newMemoryStream(Encoding.Unicode.GetBytes(json)))
{
return(Items)a.ReadObject(stream);
}
}
catch(Exception)
{
returnnull;
}
}
}
/*
簡單的對象
*/
[DataContract]
publicclassddd
{
[DataMember]
publicintcid{get;set;}
[DataMember]
publicintpid{get;set;}
[DataMember]
publicintoid{get;set;}
[DataMember]
publicstringview_type{get;set;}
[DataMember]
publicstringstatus{get;set;}
[DataMember]
publicstringname{get;set;}
[DataMember]
publicstringeng_name{get;set;}
[DataMember]
publicstringctpl{get;set;}
[DataMember]
publicstringurl{get;set;}
}
/*
2、從HTTP請求中得到數據
*/
HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create("http://www.bursonchurch.net//index.php?Interface-index-keyt-123-act-catelist.html");
request.Timeout=5000;
request.Method="GET";
HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();
Console.WriteLine("內容類型:"+response.ContentType);
Console.WriteLine("內容長度:"+response.ContentLength);
Console.WriteLine("伺服器名:"+response.Server);
Console.WriteLine("資源的URI:"+response.ResponseUri);
Console.WriteLine("HTTP協議版本:"+response.ProtocolVersion);
Console.WriteLine("相應狀態:"+response.StatusCode);
Console.WriteLine("相應方法:"+response.Method);
//頭信息
for(inti=0;i<response.Headers.Count;++i)
{
Console.WriteLine(" HeaderName:{0},----------Value:{1}",response.Headers.Keys[i],response.Headers[i]);
}
StreamReadersr=newStreamReader(response.GetResponseStream());
stringjsonstr=sr.ReadToEnd();
//例子:假設得到的json數據下面序列化為對象
stringtest="{"ddd":[{"cid":"1","pid":"0","oid":"0","view_type":"0","status":"1","name":"西科推薦","eng_name":"","ctpl":"","ctitle":"","ckeywords":"","cdescription":"","url":"http:\/\/www.bursonchurch.net\/index.php?Cate-index-cid-1.html"},{"cid":"2","pid":"0","oid":"2","view_type":"0","status":"1","name":"校園活動","eng_name":"","ctpl":"","ctitle":"","ckeywords":"","cdescription":"","url":"http:\/\/www.bursonchurch.net\/index.php?Cate-index-cid-2.html"},{"cid":"3","pid":"0","oid":"2","view_type":"0","status":"1","name":"帥哥","eng_name":"","ctpl":"","ctitle":"","ckeywords":"動物世界keword","cdescription":"動物世界s","url":"http:\/\/www.bursonchurch.net\/index.php?Cate-index-cid-3.html"},{"cid":"4","pid":"0","oid":"4","view_type":"1","status":"1","name":"靜物","eng_name":"","ctpl":"","ctitle":"","ckeywords":"","cdescription":"","url":"http:\/\/www.bursonchurch.net\/index.php?Cate-index-cid-4.html"},{"cid":"5","pid":"0","oid":"5","view_type":"1","status":"1","name":"美女","eng_name":"","ctpl":"","ctitle":"","ckeywords":"","cdescription":"","url":"http:\/\/www.bursonchurch.net\/index.php?Cate-index-cid-5.html"}]}";
//第一種轉
JavaScriptSerializerj=newJavaScriptSerializer();
Itemsii=newItems();
ii=j.Deserialize<Items>(jsonstr);
//第二種也行
Itemsit=Items.FormJson(jsonstr);
response.Close();
Console.ReadKey();
⑨ java中如何讀取json文件,在本地有E:/a.json文件,想讀取這個json文件裡面的內容,怎樣實現
//saveJsonFile("E:\\yindd\\slaughter.json");
//json文件存放路徑(如:E:\a.json)
String data= ReadFile.readFile("F:\\a.json");
System.out.println(data);
JSONObject jsonObj = JSONObject.fromObject(data);
//得到A對象
JSONArray arrayA=jsonObj.getJSONArray("A");
A a = (A) JSONObject.toBean((JSONArray.fromObject(arrayA.toString()).getJSONObject(0)),A.class);
//得到B集合
JSONArray arrayB=jsonObj.getJSONArray("B");
List<B> listB=new ArrayList<B>();
for(int i=0;i<arrayB.size();i++){
B b=(B)JSONObject.toBean((JSONArray.fromObject(arrayB.toString()).getJSONObject(i)),B.class);
listB.add(b);
}
//得到C集合
JSONArray arrayC=jsonObj.getJSONArray("C");
List<C> listC=new ArrayList<C>();
for(int i=0;i<arrayB.size();i++){
C c=(C)JSONObject.toBean((JSONArray.fromObject(arrayC.toString()).getJSONObject(i)),C.class);
listB.add(c);
}