導航:首頁 > 編程語言 > vcjson內嵌解析

vcjson內嵌解析

發布時間:2021-03-30 04:01:56

❶ 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

❷ JAVA Json 嵌套解析

{"user_get_response":{"user":{
"buyer_credit":{
"good_num":0,
"level":0,
"score":0,
"total_num":0
},
"created":"2009-09-30 13:15:54",
"last_visit":"2009-12-22 13:31:58",
"location":{},
"nick":"sandbox_c_23",
"seller_credit{
"good_num":0,
"level":0,
"score":0,
"total_num":0
}
}}}

String json = readJSONString(request);
JSONObject jsonObject = null;
String responseText = null;
String
try {
jsonObject = new JSONObject(json);
String user_get_response=jsonObject.getString("user_get_response");
JSONObject jsonObject_1=new JSONObject(user_get_response);
String user=jsonObject_1.getString("user");
JSONObject jsonObject_2=new JSONObject(user);
....
}
依次類推

❸ C#如何解析嵌套json字元串

在.net 2.0中提取這樣的json

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}

引用命名空間

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

可以把上面的JSON看成一個對象.你只要寫對應的類即可

public class UserInfo

{

public string name;

public int age;

public address addr;

}

public class address

{

public string city;

public string province;
}

然後在解析的地方這樣寫:

string jsonData="{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}";

UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData, typeof(UserInfo));

得到City的值只要:user.addr.City;

這樣實現也行

JObject jsonObj = JObject.Parse(jsonData);

string name=jsonObj ["name"].ToString();

string age=jsonObj ["age"].ToString();

string city=((JObject )jsonObj ["addr"])["city"].ToString();

string province=((JObject )jsonObj ["addr"])["province"].ToString();

如 何這個json是動態的呢?譬如讓你輸入一個json,如{"name":"lily","age":23,"addr": {"city":guangzhou,"province":guangdong}}; 然後讓你輸入一個對象,如city,然後系統會輸出guangzhou這個值,那這樣的話,json就是動態生成的了,我想了解有沒有讀取這樣的json 的方法。(注意,json是多級嵌套的。)

就用遍歷

public string GetJsonValue(JEnumerable<JToken> jToken,string key)
{
IEnumerator enumerator = jToken.GetEnumerator();
while (enumerator.MoveNext())
{
JToken jc = (JToken)enumerator.Current;

if (jc is JObject||((JProperty)jc).Value is JObject)
{
return GetJsonValue(jc.Children(), key);
}
else
{
if (((JProperty)jc).Name == key)
{

return ((JProperty)jc).Value.ToString();
}
}
}
return null;
}

在調用的時候:

string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}";
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(), "province"));

如果有多層嵌套的數組

string jsonData = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";
JObject jsonObj = JObject.Parse(jsonData);
JArray jar = JArray.Parse(jsonObj["addr"].ToString());
JObject j = JObject.Parse(jar[0].ToString());
Response.Write(j["city"]);

JSON轉XML

string xmlstr=((XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)).InnerXml.ToString();

❹ 在C++中jsonlib如何多級解析

使用C++和別的語言做交互比較常用的一種數據操作方式就是json。
解析json數據
void TranslateJson(const string strData)
{
// 解析json用Json::Reader
Json::Reader *readerinfo = new Json::Reader(Json::Features::strictMode());
// Json::Value是一種很重要的類型,可以代表任意類型。如int, string, object, array...
Json::Value root;
if (readerinfo->parse(strData, root))
{
if (root["id"].isInt())
{
int nID = root["id"].asInt();
}

if (root["time"].isString())
{
std::string strTime = root["time"].asString();
}

if (root["data"]["count"].isInt())
{
int nDataCount = root["data"]["count"].asInt();
}

if (root["data"]["name"].isString())
{
std::string strDataName = root["data"]["name"].asString();
}

}

::delete readerinfo;
readerinfo = NULL;
}

❺ 如何解析這種嵌套格式的JSON字元串

解析的步驟其實也很簡單.
首先通過JSONArray的對象獲得全部的數據的數組,
JSONArray array = new JSONArray(json);
飯否的例子專, 就是所有發言的信息屬. 但是飯否的每一條發言的信息中, 都嵌套一個用戶信息的JSON的字元串.
所以在取得每一條的發言的信息的時候, 需要再取一次這個以user為標記的JSON字元串.
JSONObject object = array.getJSONObject(i);
//獲取嵌套的JSON串
String users = object.getString("user");
//將獲取的嵌套的JSON串,再解釋一次, 得到可使用的對象.
JSONObject user = new JSONObject(users);

❻ 小弟最近在做Json解析,在VC++利用json cpp 對json串解析,但是不知道如何解析如下所示JSON字元串,求助

JSON格式錯誤。
如果不是字元串內的引號,請不要在引號前加反斜杠。
請參考json,.org

❼ 像這種嵌套格式的json怎麼解析

涉及的技術是「.net json 序列化」,可以用網路搜索一下。

.NET Framewok 3.5也提供了JSON對象序列化和反序列化的類,這就是System.Runtime.Serialization.Json 命名空間下的 DataContractJsonSerializer 類。利用這個類,可以實現JSON對象的序列化和反序列化。
如果是之前的.net版本,一般可以藉助第三方類庫來處理,例如Json.NET 或 LitJSON

思想就是先定義類,再使用類庫將對象和json格式的字元串進行相互轉化(序列化和反序列化)
你的情況需要先定義一個plan類:{"plan_id":17,"oneday_id":83,"daynum":1,"type":4,"pid":0,"counts":1}

再定義一個命令類(如cmd),包括:doadd、doedit、dodel三個List<plan>對象

最後使用類庫將對象將string解析為cmd對象

❽ json多層集合嵌套解析求助

首先樓上說的部分是對的。那麼我先假設你已經獲得了這個字元串,將之定義為jsonString.
JSONObject jsonObject = new JSONObject(jsonString);
然後,根據嵌套的種類,可以確定下一步如何取值。根據你的情況來看。應該是:
String user_get_response = jsonObject.getString("user_get_response");
JSONObject user_get_response_obj = new JSONObject(user_get_response);
這是針對第一層嵌套的。
一層一層的取下去就好。如果是數組類型的,就用JSONArray來接收。
JSONArray jsonArray = new JSONArray(jsonObject.getString("xxx"));
總之就是由外到內去解析就好

❾ C++ 解析json數據

網上有開源的解析函數
jsoncpp
官方網址 jsoncpp.sourceforge.net
裡面有代碼可以解析json
另外vs2012也支持boost
boost庫裡面也有json解析工具

閱讀全文

與vcjson內嵌解析相關的資料

熱點內容
vep文件怎麼播放 瀏覽:812
ios簡訊同步到安卓 瀏覽:217
釘釘小學文件夾在哪裡找 瀏覽:366
編程貓怎麼檢測按鍵停留後的方向 瀏覽:320
虎口脫險中譯版本由 瀏覽:160
花兒教育app怎麼老是更新啊 瀏覽:557
用戶配置文件目錄 瀏覽:974
重啟網路適配器 瀏覽:414
市面上一般pd數據線多少錢 瀏覽:565
更新app怎麼換賬號 瀏覽:905
一個視頻網站能賺多少錢 瀏覽:357
在電腦上怎麼復制文件 瀏覽:496
我的世界文件夾mod在哪裡 瀏覽:525
蘋果5s測評 瀏覽:782
安全文件夾在哪裡下 瀏覽:643
catpart文件名怎麼設置 瀏覽:39
PDF檔文件怎麼另存為 瀏覽:402
網路機頂盒恢復出廠怎麼能下載 瀏覽:4
網頁元素代碼 瀏覽:67
讀書選擇版本的原因 瀏覽:992

友情鏈接