cjson獲取長度的簡單介紹

本文目錄一覽:

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);

jquery 如何獲取value長度?

1.創建sjp頁面:

tr

tdfont帳號:/font/td

tdinput type=”text” name=”username”  id=”username” value=”” style=”height: 20px;” onblur=”checknames()”/td

/tr

2.編寫就是:

//校驗用戶名是否唯一

function checknames(){

var names = $(“#username”).val().trim();

var len = names.length;

alert(len);

if(names == “”){

alert(“4156145:”+names);

alert(“用戶名不能為空!”);

return ;

}

else{

var names = encodeURI(encodeURI(names));

alert(“填寫了:”+names);

var url = “c:url value=’/user/create.action’/?username=” + names;

alert(url);

$.ajax({

type: “post”,

url: url,

dataType:’json’,

success: function(data, textStatus){

if(data.success){

alert(“恭喜可以註冊”);

}

else{

alert(data.errorMsg);

}

}

});

}

}

3.效果圖:

JavaScript、jquery、angular、react是怎麼實現獲取input輸入框中的值?

原生javascript : document.querySelector(‘input’).value 這是瀏覽器提供的js訪問DOM對象的接口

jQuery主要為DOM選擇器做了封裝,簡化了語法,$(‘input’).val()

vue、React、Angular都是採用了監聽input的onChange事件實現了雙向/單向數據綁定實時獲取input中的值

原理上,所有的庫和框架都在內部使用了原生javascript的方法獲取input中的值

如何使用c語言獲取文件中的json數據

直接文件操作就行了。fopen,然後直接讀出文件中的json數據,保存到一個數組裏面就行了

c里socket如何接收整個json包,需要長度么

一個包沒有固定長度,以太網限制在46-1500位元組,1500就是以太網的MTU,超過這個量…3、TCP是有多少就收多少,如果沒有當然阻塞Socket的recv就會等

原創文章,作者:KLQPX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/317150.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KLQPX的頭像KLQPX
上一篇 2025-01-11 16:27
下一篇 2025-01-11 16:27

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python列表長度怎麼算

    本文將從以下多個方面闡述Python列表長度的計算方式,包括len()函數、循環遍歷、切片、列表推導式等。 一、使用len()函數計算列表長度 計算列表長度最常見的方法是使用Pyt…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • Python queue長度用法介紹

    本文將從多個方面詳細闡述Python queue長度問題,包括隊列長度的定義、如何獲取隊列長度、隊列滿時如何處理以及常見的隊列長度問題。同時,本文也會提供完整的Python代碼示例…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27

發表回復

登錄後才能評論