如何把json中的items提取

如何把json中的items提取,第1张

通过JSON提取器来取。JSON是一种轻量级的数据交换格式,它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,它是通过JSON提取器来取的。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

在net 20中提取这样的json

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

引用命名空间

using NewtonsoftJson;

using NewtonsoftJsonLinq;

可以把上面的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)JsonConvertDeserializeObject(jsonData, typeof(UserInfo));

得到City的值只要:useraddrCity;

这样实现也行

JObject jsonObj = JObjectParse(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 = jTokenGetEnumerator();

while (enumeratorMoveNext())

{

JToken jc = (JToken)enumeratorCurrent;

if (jc is JObject||((JProperty)jc)Value is JObject)

{

return GetJsonValue(jcChildren(), key);

}

else

{

if (((JProperty)jc)Name == key)

{

return ((JProperty)jc)ValueToString();

}

}

}

return null;

}

在调用的时候:

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

JObject jsonObj = JObjectParse(jsonData);

ResponseWrite(GetJsonValue(jsonObjChildren(), "province"));

如果有多层嵌套的数组

string jsonData = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";

JObject jsonObj = JObjectParse(jsonData);

JArray jar = JArrayParse(jsonObj["addr"]ToString());

JObject j = JObjectParse(jar[0]ToString());

ResponseWrite(j["city"]);

JSON转XML

string xmlstr=((XmlDocument)JsonConvertDeserializeXmlNode(jsonData))InnerXmlToString();

1、 requestjson 只能够接受方法为POST、Body为raw,header 内容为 application/json类型的数据:对应图1

2、 jsonloads(requestdada) 能够同时接受方法为POST、Body为 raw类型的 Text 或者 application/json类型的值:对应图1、2

图一

图二

json中取出对象的属性值步骤如下:

1、打开vscode,创建一个测试页面JsonTesthtml,用于演示在js中如何获取json对象的属性集合。

2、在测试页面中,定义一个js变量,将其赋值为json格式的字符串,用于模拟从后台返回过来的json字符串值,以及后续转换为json对象,和获取其属性集合。var json = "[{\"Col1\": \"Hello\", \"Col2\": \"World\"}, {\"Col1\": \"您好\", \"Col2\": \"世界\"}]"。

3、使用js的eval函数,将json字符串的变量值,转换为json对象。var $json = eval("(" + json + ")");

4、得到json对象之后,使用for-in循环语句,得到json对象的序号,也就是,这个json对象中,还有多少个子对象。

5、因为js是弱类型的语言,并不要求json对象中的每个子对象属性都一样。所以,在得到序号之后,使用Objectkeys($json[i]); 就能获取到当前json子对象的属性集合。

6、如果想要获取到json对象的每个具体的列名和值,就需要再加一个for循环,遍历列名,得到列名和值。

以上就是关于如何把json中的items提取全部的内容,包括:如何把json中的items提取、c#中怎么解析多层json数据、从request中获取json内容2种方式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9311439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存