首页 > 编程知识 正文

cjson获取长度的简单介绍

时间:2023-12-09 14:12:27 阅读:313553 作者:ALTA

本文目录一览:

  • 1、c#读取json
  • 2、jquery 如何获取value长度?
  • 3、如何使用c语言获取文件中的json数据
  • 4、c里socket如何接收整个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);

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就会等

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。