cjson获取长度的简单介绍

发布时间:2023-12-08

#cJSON获取长度的简单介绍 更新:2022-11-11 05:00

本文目录一览:

  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的序列化和反序列化

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

效果图

  • 原生JavaScriptdocument.querySelector('input').value
  • jQuery$('input').val()
  • Vue、React、Angular:通过监听 inputonChange 事件实现数据绑定

如何使用c语言获取文件中的json数据

直接使用文件操作函数 fopen,然后读取文件中的 JSON 数据,保存到一个数组中即可。

c里socket如何接收整个json包,需要长度么

一个包没有固定长度,以太网限制在 46-1500 字节,1500 就是以太网的 MTU,超过这个量... TCP 是有多少就收多少,如果没有当然阻塞 Socket 的 recv 就会等。