#cJSON获取长度的简单介绍 更新:2022-11-11 05:00
本文目录一览:
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的序列化和反序列化
.NET 3.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
DataContractJsonSerializer
类用于将对象序列化为 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;
}
测试:
Customer cc = new Customer { Unid = 1, CustomerName = "John" };
string strJson = ToJson(cc);
Console.WriteLine(strJson); // 输出:{"CustomerName":"John","Unid":1}
反序列化
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); // 输出:1 John
通过泛型方法对两者进行修改
public string ToJsonT<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 FromJsonT<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;
}
测试:
Customer cc = new Customer { Unid = 1, CustomerName = "John" };
string strJsons = ToJsonT(cc);
Console.WriteLine(strJsons); // 输出:{"CustomerName":"John","Unid":1}
string strJson = "{\"CustomerName\":\"John\",\"Unid\":1}";
Customer c = FromJsonT<Customer>(strJson);
Console.WriteLine(c.Unid + " " + c.CustomerName); // 输出:1 John
jquery 如何获取value长度?
创建HTML页面
<tr>
<td><font>帐号:</font></td>
<td><input type="text" name="username" id="username" value="" style="height: 20px;" onblur="checknames()"/></td>
</tr>
编写JavaScript代码
// 校验用户名是否唯一
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);
}
}
});
}
}
效果图
- 原生JavaScript:
document.querySelector('input').value
- jQuery:
$('input').val()
- Vue、React、Angular:通过监听
input
的onChange
事件实现数据绑定
如何使用c语言获取文件中的json数据
直接使用文件操作函数 fopen
,然后读取文件中的 JSON 数据,保存到一个数组中即可。
c里socket如何接收整个json包,需要长度么
一个包没有固定长度,以太网限制在 46-1500 字节,1500 就是以太网的 MTU,超过这个量... TCP 是有多少就收多少,如果没有当然阻塞 Socket 的 recv
就会等。