導航:首頁 > 編程語言 > 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相關的資料

熱點內容
看網址 瀏覽:35
台灣理論在線 瀏覽:917
如何關閉別人的網路連接 瀏覽:463
linux下tftp拷貝文件 瀏覽:507
親吻系電影 瀏覽:513
韓國在車震的劇情 瀏覽:929
流量點擊工具 瀏覽:892
主角叫葉楓的斗羅小說 瀏覽:227
群主如何刪除群文件 瀏覽:766
蘋果ipad能連鍵盤嗎 瀏覽:492
jsreference 瀏覽:637
蘋果用什麼數據線 瀏覽:748
越語電影 瀏覽:55
電影結束了?英文翻譯 瀏覽:476
Excel數據文件夾 瀏覽:442
java交行面試題 瀏覽:626
露點電影合集 瀏覽:697
cad文件可以用p3d打開嗎 瀏覽:394
文件名不能用的特殊符號 瀏覽:740
那能找到在線小電影 瀏覽:476

友情鏈接