导航:首页 > 编程语言 > mfc中解析json

mfc中解析json

发布时间:2021-03-07 16:51:25

1. c如何解析json数据

你知道的逻辑结构吗?
JSONObjectjson=newJSONObject();
JSONArrayjsonMembers=newJSONArray();
for(Deptdaily:dailys){
JSONObjectmember=newJSONObject();
member.put("dept_name",daily.getDPT_NAME());
member.put("user_name",daily.getUser_name());
if(daily.getE_mail()==null){
daily.setE_mail("暂无");
}
member.put("email",daily.getE_mail());
member.put("daily_date",daily.getDaily_date());
jsonMembers.put(member);
}
JSONArrayjsonMembers1=newJSONArray();
JSONObjectmember1=newJSONObject();
member1.put("pagesize",dept.getPagesize());
member1.put("allpage",dept.getAllpage());
member1.put("allitems",dept.getAllitems());
member1.put("nowpage",dept.getNowpage());
jsonMembers1.put(member1);
json.put("check",jsonMembers);
json.put("page",jsonMembers1);
out.print(json);

2. C++ 解析json数据

网上有开源的解析函数
jsoncpp
官方网址 jsoncpp.sourceforge.net
里面有代码可以解析json
另外vs2012也支持boost
boost库里面也有json解析工具

3. MFC 中 调接口返回参数中得Json解析后,中文字符变成了乱码,如何解决

因为中文字符是unicode编码的,不能直接显示。需要在工程配置里面加入对unicode的支持。
请采纳,谢谢

4. 如何用mfc 生成json文件

json说白了只是一串长得像js对象字符串,不是一个后缀名或者一种文件形式,所以只要将这个字符串传给前端js处理就行了,json本身就是一个对象,所以你可以直接赋值给一个对象就行。

5. c#解析JSON的几种办法

对比





6. C#中怎么解析JSON数据

首先要知道json 的格式 把dataset中datatable表中数据转成json格式 public static string JsonConvert(DataSet ds)
{
StringBuilder sb = new StringBuilder();
sb.Append("[");
for (int i=0;i<ds.Tables[0].Rows.Count;i++)
{
sb.Append("{");
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
sb.Append("");
sb.Append(ds.Tables[0].Columns[j].ColumnName);
sb.Append(":\"");
sb.Append(ds.Tables[0].Rows[i][j].ToString().Trim());
sb.Append("\",");
}
sb.Remove(sb.Length-1,1);
sb.Append("},");
}
sb.Remove(sb.Length-1,1);
sb.Append("]");
return sb.ToString();
} /// <summary>
/// 将Ilist转成json格式
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static string JsonConvert(IList<TransBody> list)
{
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializer seializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(list.GetType());
using (MemoryStream ms = new MemoryStream())
{
seializer.WriteObject(ms, list);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
catch
{
return null;
}
}把json格式转成ILIST 格式
public static object ConvertJson(string json ,Type t)
{
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(t);
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
return serializer.ReadObject(ms);
}
}
catch
{
return null;
}

}

7. vc如何读取json

JSON C++版(http://blog.beef.de/2008/01/04/tinyjson/)
可以到官方网站上看实例

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

JSON的格式
值:
user = {name:"某某某",extinfo : { sex : "男" , age : 22 }}
结果:
user.name = "某某某"
user.extinfo.sex = "男"
user.extinfo.age = 22

8. C++解析Json字符串问题!

一、从字符串中读取JSON
#include <iostream>
#include "json/json.h"
using namespace std;
int main()
{
//字符串
const char * str =
"{\"praenomen\":\"Gaius\",\"nomen\":\"Julius\",\"cognomen\":\"Caezar\","
"\"born\":-100,\"died\":-44}" ;
Json::Reader reader;
Json::Value root;
//从字符串中读取数据
if (reader.parse(str,root))
{
string praenomen = root[ "praenomen" ].asString();
string nomen = root[ "nomen" ].asString();
string cognomen = root[ "cognomen" ].asString();
int born = root[ "born" ].asInt();
int died = root[ "died" ].asInt();
cout << praenomen + " " + nomen + " " + cognomen
<< " was born in year " << born
<< ", died in year " << died << endl;
}
return 0;
}

makefile文件
LIB=-L /usr/local/lib/libjson/ -ljson_linux- gcc -4.4.7_libmt
a: a.o
g++ -o a -std=c++0x a.o $(LIB)
a.o: a.cpp
g++ -c a.cpp
clean:
rm -rf a.o a

二、从文件中读取JSON
PersonalInfo.json(一个存储了JSON格式字符串的文件)

{
"name" : "Tsybius" ,
"age" :23,
"sex_is_male" : true ,
"partner" :
{
"partner_name" : "Galatea" ,
"partner_age" :21,
"partner_sex_is_male" : false
},
"achievement" :[ "ach1" , "ach2" , "ach3" ]
}
#include <iostream>
#include <fstream>
#include "json/json.h"
using namespace std;
int main()
{
Json::Reader reader;
Json::Value root;
//从文件中读取
ifstream is;
is.open( "PersonalInfo.json" , ios::binary);
if (reader.parse(is,root))
{
//读取根节点信息
string name = root[ "name" ].asString();
int age = root[ "age" ].asInt();
bool sex_is_male = root[ "sex_is_male" ].asBool();
cout << "My name is " << name << endl;
cout << "I'm " << age << " years old" << endl;
cout << "I'm a " << (sex_is_male ? "man" : "woman" ) << endl;
//读取子节点信息
string partner_name = root[ "partner" ][ "partner_name"].asString();
int partner_age = root[ "partner" ][ "partner_age" ].asInt();
bool partner_sex_is_male = root[ "partner" ]["partner_sex_is_male" ].asBool();
cout << "My partner's name is " << partner_name << endl;
cout << (partner_sex_is_male ? "he" : "she" ) << " is "
<< partner_age << " years old" << endl;
//读取数组信息
cout << "Here's my achievements:" << endl;
for ( int i = 0; i < root[ "achievement" ].size(); i++)
{
string ach = root[ "achievement" ][i].asString();
cout << ach << '\t' ;
}
cout << endl;
cout << "Reading Complete!" << endl;
}
is.close();
return 0;
}

makefile
?
LIB=-L /usr/local/lib/libjson/ -ljson_linux- gcc -4.4.7_libmt
a: a.o
g++ -o a -std=c++0x a.o $(LIB)
a.o: a.cpp
g++ -c a.cpp
clean:
rm -rf a.o a

三、将信息保存为JSON格式
a.cpp

#include <iostream>
#include <fstream>
#include "json/json.h"
using namespace std;
int main()
{
//根节点
Json::Value root;
//根节点属性
root[ "name" ] = Json::Value( "Tsybius" );
root[ "age" ] = Json::Value(23);
root[ "sex_is_male" ] = Json::Value( true );
//子节点
Json::Value partner;
//子节点属性
partner[ "partner_name" ] = Json::Value( "Galatea" );
partner[ "partner_age" ] = Json::Value(21);
partner[ "partner_sex_is_male" ] = Json::Value( false );
//子节点挂到根节点上
root[ "partner" ] = Json::Value(partner);
//数组形式
root[ "achievement" ].append( "ach1" );
root[ "achievement" ].append( "ach2" );
root[ "achievement" ].append( "ach3" );

//直接输出
cout << "FastWriter:" << endl;
Json::FastWriter fw;
cout << fw.write(root) << endl << endl;
//缩进输出
cout << "StyledWriter:" << endl;
Json::StyledWriter sw;
cout << sw.write(root) << endl << endl;

//输出到文件
ofstream os;
os.open( "PersonalInfo" );
os << sw.write(root);
os.close();
return 0;
}

makefile
LIB=-L /usr/local/lib/libjson/ -ljson_linux- gcc -4.4.7_libmt
a: a.o
g++ -o a -std=c++0x a.o $(LIB)
a.o: a.cpp
g++ -c a.cpp
clean:
rm -rf a.o a

{
"achievement" : [ "ach1" , "ach2" , "ach3" ],
"age" : 23,
"name" : "Tsybius" ,
"partner" : {
"partner_age" : 21,
"partner_name" : "Galatea" ,
"partner_sex_is_male" : false
},
"sex_is_male" : true
}

阅读全文

与mfc中解析json相关的资料

热点内容
菲律宾片《桨叶》 浏览:234
小电影网站推荐 浏览:619
如何从数据分析获利并产生影响力 浏览:686
点付款码出现网络不可用什么情况 浏览:659
米璐璐作品集下载txt 浏览:238
cad新建文件怎么不显示 浏览:380
重生香港1973炒股 浏览:400
日本大奶电影 浏览:490
linux空间不足如何解决办法 浏览:205
网络订单处理 浏览:589
团鬼六所有的电影 浏览:157
十大必看火影小说排行榜 浏览:580
大香蕉一区 浏览:697
台版iphone6有什么区别 浏览:711
小说电影图片 浏览:114
求个在线看h的网站 浏览:859
神鼠电影网第一页 浏览:938
361电影电视剧 浏览:303
韩国一个护工照顾病人的电影 浏览:398
重生薛仁贵之推薛琪 浏览:42

友情链接