首页 > 编程知识 正文

cjson写入,cjson是什么

时间:2024-04-24 11:43:24 阅读:334224 作者:MDLS

本文目录一览:

C#如何将窗体上的treeview控件内容全部写入json文件?

从内存中将数据保存到文件的过程叫持久化,持久化可以用序列化的方式来实现

序列化和反序列化可以用Json.NET

File.WriteAllText(@"c:movie.json", JsonConvert.SerializeObject(treeview1));

但是这样序列化可能会有引用的问题,更好的方式是你只将bind到treeview的数据源序列化

然后写一个加载数据的方法,这样只用读写真正需要的数据,而不用管treeview的问题

ASP 读取json后如何 写入数据库

ASP 获取JSON 数据:script language="JScript" runat="Server"

    function toObject(json) {

        eval("var o=" + json);

        return o;

    }

   

/script

%

Dim json

json ="{""px_name"":""第二届"",""px_ksjs"":""2014-03-11"",""px_kcfl"":""培训课程""}"

Set json = toObject(json)

Response.Write json.px_name " br/"

Response.Write json.px_ksjs " br/"

Response.Write json.px_kcfl " br/"

Set json = Nothing

%

2.写入数据库

OleDbConnection conn = new OleDbConnection();

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";

OleDbCommand comm = new OleDbCommand();

conn.Open();

comm.Connection = conn;

comm.CommandText = "Insert Into [Time] ([begin],[over],[name]) Values (@begin,@over,@name)";

comm.Parameters.AddWithValue("@begin", a);

comm.Parameters.AddWithValue("@over", b);

comm.Parameters.AddWithValue("@name", c);

comm.ExecuteNonQuery();

conn.Close();

注意:

1、以上代码是以access数据为例。

2、如果表里面有其他不能为空的字段存在,需要给他们提供值,自动增加的字段除外。

3、db1.mdb文件的只读属性去掉,在文件的属性-安全性里面,添加 everyone帐号和NETWORK Service 帐号可修改权限。

c++保存数组到json文件报错?

不能一次放入过多数据,建议循环写入数据,不要一次性写入。望采纳,谢谢

怎么用C语言获取JSON中的数据?

用C语言获取JSON中的数据的方法是使用 CJSON。

以下简单介绍用CJSON的思路及实现:

1)创建json,从json中获取数据。

#nclude stdio.h

#include "cJSON.h"

char * makeJson()

{

cJSON * pJsonRoot = NULL;

pJsonRoot = cJSON_CreateObject();

if(NULL == pJsonRoot)

{

//error happend here

return NULL;

}

cJSON_AddStringToObject(pJsonRoot, "hello", "hello world");

cJSON_AddNumberToObject(pJsonRoot, "number", 10010);

cJSON_AddBoolToObject(pJsonRoot, "bool", 1);

cJSON * pSubJson = NULL;

pSubJson = cJSON_CreateObject();

if(NULL == pSubJson)

{

// create object faild, exit

cJSON_Delete(pJsonRoot);

return NULL;

}

cJSON_AddStringToObject(pSubJson, "subjsonobj", "a sub json string");

cJSON_AddItemToObject(pJsonRoot, "subobj", pSubJson);

char * p = cJSON_Print(pJsonRoot);

// else use :

// char * p = cJSON_PrintUnformatted(pJsonRoot);

if(NULL == p)

{

//convert json list to string faild, exit

//because sub json pSubJson han been add to pJsonRoot, so just delete pJsonRoot, if you also delete pSubJson, it will coredump, and error is : double free

cJSON_Delete(pJsonRoot);

return NULL;

}

//free(p);

cJSON_Delete(pJsonRoot);

return p;

}

void parseJson(char * pMsg)

{

if(NULL == pMsg)

{

return;

}

cJSON * pJson = cJSON_Parse(pMsg);

if(NULL == pJson)

{

// parse faild, return

return ;

}

// get string from json

cJSON * pSub = cJSON_GetObjectItem(pJson, "hello");

if(NULL == pSub)

{

//get object named "hello" faild

}

printf("obj_1 : %sn", pSub-valuestring);

// get number from json

pSub = cJSON_GetObjectItem(pJson, "number");

if(NULL == pSub)

{

//get number from json faild

}

printf("obj_2 : %dn", pSub-valueint);

// get bool from json

pSub = cJSON_GetObjectItem(pJson, "bool");

if(NULL == pSub)

{

// get bool from json faild

}

printf("obj_3 : %dn", pSub-valueint);

// get sub object

pSub = cJSON_GetObjectItem(pJson, "subobj");

if(NULL == pSub)

{

// get sub object faild

}

cJSON * pSubSub = cJSON_GetObjectItem(pSub, "subjsonobj");

if(NULL == pSubSub)

{

// get object from subject object faild

}

printf("sub_obj_1 : %sn", pSubSub-valuestring);

cJSON_Delete(pJson);

}

int main()

{

char * p = makeJson();

if(NULL == p)

{

return 0;

}

printf("%sn", p);

parseJson(p);

free(p);//这里不要忘记释放内存,cJSON_Print()函数或者cJSON_PrintUnformatted()产生的内存,使用free(char *)进行释放

return 0;

}

2)创建json数组和解析json数组

//创建数组,数组值是另一个JSON的item,这里使用数字作为演示

char * makeArray(int iSize)

{

cJSON * root = cJSON_CreateArray();

if(NULL == root)

{

printf("create json array faildn");

return NULL;

}

int i = 0;

for(i = 0; i iSize; i++)

{

cJSON_AddNumberToObject(root, "hehe", i);

}

char * out = cJSON_Print(root);

cJSON_Delete(root);

return out;

}

//解析刚刚的CJSON数组

void parseArray(char * pJson)

{

if(NULL == pJson)

{

return ;

}

cJSON * root = NULL;

if((root = cJSON_Parse(pJson)) == NULL)

{

return ;

}

int iSize = cJSON_GetArraySize(root);

for(int iCnt = 0; iCnt iSize; iCnt++)

{

cJSON * pSub = cJSON_GetArrayItem(root, iCnt);

if(NULL == pSub)

{

continue;

}

int iValue = pSub-valueint;

printf("value[%2d] : [%d]n", iCnt, iValue);

}

cJSON_Delete(root);

return;

}

有两种方法:

一是标准的输出输入方式 比如新建一个磁盘文件c:a.txt, 将键盘输入的一字符串写到文件中:

FILE *ft;

char str[50];

ft=fopen("c:\a.txt","w+");

printf("输入一个字符串:");

scanf("%s",str);

fputs(str,ft);

fclose(ft);

//重新打开这个文件并读出字符串,显示在屏幕上 ft=fopen("c:\a.txt","rt");

fgets(str,50,ft);

fclose(ft); printf("%s",str);

二是低级输入输出方式 仍如上例:

int hd; char str[50]; printf("输入一个字符串:");

scanf("%s",str);

hd=open("c:\a.txt",O_CREAT|O_TEXT|O_WRONLY);

write(hd,str,strlen(str));

close(hd); //重新打开这个文件并读出字符串,显示在屏幕上。

hd=open("c:\a.txt",O_TEXT|O_RDONLY); read(hd,str,50);

close(hd); printf("%s",str)。

请问json如何追加内容,并且修改,和删除操作。急~

json追加内容并且修改和删除操作示例:

1、增加:

myObj.user='我是新增的用户-小明';

x +="h1增加后的数据/h1"forin();

2、修改:

myObj.name= "我的网站";

x +="h1修改后的数据/h1"forin();

3、删除:

delete myObj.sites;

x +="h1删除后的数据/h1"forin();

扩展资料

JS动态动态创建JSON数据字符串,并且可以删除添加修改

script type="text/javascript"

//添加或者修改json数据

function setJson(jsonStr,name,value)

{

if(!jsonStr)jsonStr="{}";

var jsonObj = JSON.parse(jsonStr);

jsonObj[name] = value;

return JSON.stringify(jsonObj)

}

//删除数据

function deleteJson(jsonStr,name)

{

if(!jsonStr)return null;

var jsonObj = JSON.parse(jsonStr);

delete jsonObj[name];

return JSON.stringify(jsonObj)

}

//生成测试

var myjsonStr = setJson(null,"name","aaa");

alert(myjsonStr);

//添加测试

myjsonStr = setJson(myjsonStr,"age",18);

alert(myjsonStr);

//修改测试

myjsonStr = setJson(myjsonStr,"age",20);

alert(myjsonStr);

//删除测试

myjsonStr = deleteJson(myjsonStr,"age");

alert(myjsonStr);

/script

lua中怎样将json文件写入沙盒

解析JSON

local cjson = require "cjson"

local sampleJson = [[{"age":"23","testArray":{"array":[8,9,11,14,25]},"Himi":"himigame.com"}]];

--解析json字符串

local data = cjson.decode(sampleJson);

--打印json字符串中的age字段

print(data["age"]);

--打印数组中的第一个值(lua默认是从0开始计数)

print(data["testArray"]["array"][1]);

编码JSON

local cjson = require "cjson"

local retTable = {}; --最终产生json的表

--顺序数值

local intDatas = {};

intDatas[1] = 100;

intDatas[2] = "100";

--数组

local aryDatas = {};

aryDatas[1] = {};

aryDatas[1]["键11"] = "值11";

aryDatas[1]["键12"] = "值12";

aryDatas[2] = {};

aryDatas[2]["键21"] = "值21";

aryDatas[2]["键22"] = "值22";

--对Table赋值

retTable["键1"] = "值1";

retTable[2] = 123;

retTable["int_datas"] = intDatas;

retTable["aryDatas"] = aryDatas;

--将表数据编码成json字符串

local jsonStr = cjson.encode(retTable);

print(jsonStr);

--结果是:{"int_datas":[100,"100"],"2":123,"键1":"值1","aryDatas":[{"键12":"值12","键11":"值11"},{"键21":"值21","键22":"值22"}]}。

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

  •  标签:  
  • cjson