从Json返回字符串中提取故障,Json中的字段可以动态更改 [英] Trouble Extracting from Json Return String Where the Fields in the Json can Change Dynamically
问题描述
我遇到了一个问题,其中从API返回的Json字符串可能包含全部或部分字段可能取决于用户的输入.我有一种方法可以提取任何一种 各个字段如下-
{
"outageNumber":"17-06850752",
"outageNumber": "17-06850752",
"outageTypeCd":"I",
"outageTypeCd": "I",
"updated_by": joe.person@yourisp.com "
"updated_by": "joe.person@yourisp.com"
}
将objJavaSrptSerializer设置为Object = New JavaScriptSerializer ().Deserialize(Of Object)(strJsonString)
strOutageNumber = objJavaSrptSerializer("outageNumber" ;)
strOutageTypeCd = objJavaSrptSerializer("outageTypeCd" ;)
只要从API返回的字段类型与我尝试提取的字段类型匹配,此方法就可以正常工作.例如,如果服务器未返回"outageTypeCd"字段,并且尝试了我的代码 无论如何提取该字段,都会出现以下错误–
This works fine as long as the field types coming back from the API match up to what I am attempting to extract. For example if the ‘outageTypeCd’ field was not returned by the server and my code attempted to extract that field anyway I get the following error –
给定的键在字典中不存在"
任何人都对我如何仅基于Json字符串中包含的内容来提取所有字段有任何想法.
推荐答案
我想我回答了我自己的问题...这是我想出的.如果有人有更好的解决方案,请告诉我...
I think I answered my own question... Here is what I came up with. If anyone has a better solution please let me know...
DimobjJavaSrptSerializer AsObject= NewJavaScriptSerializer().Deserialize(OfObject)(strJsonString)
If(objJavaSrptSerializer.ContainsKey("outageNumber123")) Then
strOutageNumber = objJavaSrptSerializer(
strOutageNumber = objJavaSrptSerializer(
"outageNumber")
MsgBox(strOutageNumber)
MsgBox(strOutageNumber)
MsgBox(
MsgBox(
)
"It is not there...")
如果
这篇关于从Json返回字符串中提取故障,Json中的字段可以动态更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!