导航:首页 > 编程语言 > c生成jsonstring

c生成jsonstring

发布时间:2021-12-09 11:15:28

json-c库,json格式字符串处理问题

你把json字符串放到 eval(json字符串) 函数中,就能得到一组你想要的对象了。

❷ c语言 解析json字符串

你好,你用json-c库,编译通过了吗?我是在ubuntu里使用json-c库,但是无法编译通过回,报错 undefined reference to 'json_tokener_parse',类似的函数答没定义的错误,你是怎么调用的json-c库?请教一下,谢谢!

❸ 怎么用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 coremp, 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 : %s ", pSub->valuestring);

// get number from json

pSub = cJSON_GetObjectItem(pJson, "number");

if(NULL == pSub)

{

//get number from json faild

}

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

// get bool from json

pSub = cJSON_GetObjectItem(pJson, "bool");

if(NULL == pSub)

{

// get bool from json faild

}

printf("obj_3 : %d ", 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 : %s ", pSubSub->valuestring);

cJSON_Delete(pJson);

}


int main()

{

char * p = makeJson();

if(NULL == p)

{

return 0;

}

printf("%s ", 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 faild ");

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] ", iCnt, iValue);

}

cJSON_Delete(root);

return;

}

❹ c语言如何将计算出的时间变量写入JSON字符串中

char str[7]="adcdef"; 也可用struct定义一个结构变量体 typedef struct { char str[20];//用于存放字符串,20为最大容量 int count;//统计实际存放的字符个数 }string;

❺ 如何将 JsonResult的数据转换为String

Json数据格式:
var jsontext = "[{"id":"815bb899-8d70-4745-b799-7e68840a2b34","text":"设计","pid":"57eb2d57-9384-4d9f-a399-2c228fea81c2"},{"id":"4c76b72c-35da-4749-893c-5c7dde9431e6","text":"市政工程","pid":""}]";

/// <summary>
/// Json数据转数组
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonText"></param>
/// <returns></returns>
public List<T> JsonToList<T>(string jsonText)
{
List<T> list = new List<T>();
DataContractJsonSerializer _Json = new DataContractJsonSerializer(list.GetType());
byte[] _Using = System.Text.Encoding.UTF8.GetBytes(jsonText);
System.IO.MemoryStream _MemoryStream = new System.IO.MemoryStream(_Using);
_MemoryStream.Position = 0;
return (List<T>)_Json.ReadObject(_MemoryStream);
}

public class CheckedTreeInfo
{
/// <summary>
/// 父节点Id
/// </summary>
public string pid { get; set; }
/// <summary>
/// 节点Id
/// </summary>
public string id { get; set; }
/// <summary>
/// 节点名称
/// </summary>
public string text { get; set; }
}

java 将一个String 形式的json转化成Map,比如"{\"a\":\"1\",\"b\

将一个String 形式的转化成Map的Java程序如下:

importjava.util.HashMap;

importjava.util.Iterator;

importjava.util.Map;

importorg.json.JSONObject;

publicclassFFF{

publicstaticvoidmain(String[]args){

Strings="{"a":"1","b":2,"c":"2016-5"}";

JSONObjectjso=newJSONObject(s);

Map<String,Object>m=newHashMap<String,Object>();

Iteratorit=jso.keys();

while(it.hasNext()){

Stringkey=(String)it.next();

Objectvalue=jso.get(key);

m.put(key,value);

}

System.out.println(m.toString());

}

}

运行结果:

{a=1, b=2, c=2016-5}

❼ c语言如何判断一段字符串是否是json格式的

如果你的json 不算复杂的话,可以直接用一个简单的正则

string pattern=@"{("\w+":(\d+|"\w+"|true|false|null))+}\] "; // input 是json字符串 var match = Regex.Match(input, pattern);

如果复杂的,你需要 判断 ":"等!
也可以用这个:

var serializer = new JavaScriptSerializer();dynamic obj = serializer.Deserialize(json, typeof(object));

//判断 obj就行!

❽ 怎么用 C/C++ 把结构体数组转成 JSON串

用CSTRING的GetBuffer函数返回一个存放字符的头指针,用一个CHAR *来接受他,然后用下标操作就可以版了。
例如:char * ptr = str.GetBuffer();
定义一个数权组来接受各个字符
cahr array[10]="0";
char array[0]=ptr[0];
char array[1]=ptr[1];
也可以用一个循环,这样ARRAY数组就保存了CSTRING中的各个字符.

❾ C#如何生成json字符串

推荐用Newtonsoft.Json的类库
用类库的JsonHelper.SerializeObject()方法 参数是个类
可以将C#里的类转化为内json数据
比如
public class test
{
public int id {get; set;}
}
class c=new test();
string json=JsonHelper.SerializeObject(c);
注意using类库

满意请容采纳 谢谢

❿ 如何把json对象转换成字符串

1.简单的解析json字符串
首先将json字符串转换为json对象,然后再解析json对象,过程如下。
JSONObject jsonObject = JSONObject.fromObject(jsonStr);

[java] view plain
<pre></pre><span style="white-space:pre"></span>
<pre></pre>
根据json中的键得到它的值
String name = jsonObject.getString("name");
int num = jsonObject.getInt("num");
String sex = jsonObject.getString("sex");
int age = jsonObject.getInt("age");

2.将json字符串转换为java对象
同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。
JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象

将json对象转换为java对象
Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象

3.将java对象转换为json字符串
先将java对象转换为json对象,在将json对象转换为json字符串
JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象

String str = json.toString();//将json对象转换为字符串
完整代码如下:

[java] view plain
package baz.parse;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import baz.bean.Person;

public class ParseJson {

private String jsonStr;

public ParseJson() {

}

阅读全文

与c生成jsonstring相关的资料

热点内容
老挝电影 浏览:468
看日本性动漫的网站 浏览:590
你那天晚上看了什么电影英文翻译 浏览:236
东方福利的电影票怎么用 浏览:739
泰国爱情片 浏览:339
日本顶级爱情理论片 浏览:925
十部顶级韩剧电影 浏览:240
1979年越南战争电影 浏览:510
含糖1v1sc荔枝 浏览:415
免费看韩国电影的网站 浏览:953
word怎么设置水印 浏览:414
qq提醒cf 浏览:883
成了电影 浏览:648
盘点大尺度床戏的电影 浏览:441
putty传文件给linux 浏览:121
有个蒲字的电影,女主和男主在酒吧相遇 浏览:233
日韩电影欲大尺推荐 浏览:48
网吧电影平台 浏览:839
重生抗日我是少帅张学铭 浏览:384
韩国电影免费在线观看大全 浏览:232

友情链接