❶ 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() {
}