tag 是传入的键 json是传入的JSON
string val = "";
try
{
if (json != null && json.Length > 0 && tag != null && tag.Length > 0)
{
try
{
JObject jo = (JObject)JsonConvert.DeserializeObject(json);
if (jo[tag] == null)//可能存在子json里
{
IEnumerable<JProperty> properties = jo.Properties();
foreach (JProperty item in properties)
{
JToken jToken = item.Value;
if (jToken.GetType().ToString() == "Newtonsoft.Json.Linq.JArray")
{
JArray jobs = (JArray)jToken;
for (int i = 0; i < jobs.Count; i++)
{
jo = JObject.Parse(jobs[i].ToString());
if (jo[tag] != null)
{
val = jo[tag].ToString();
break;
}
}
}
}
}
else
{
val = jo[tag].ToString();
}
if (!string.IsNullOrEmpty(val))
return val;
}
catch (Exception ex)
{
string msg = ex.Message;
}
int index = json.IndexOf("\"" + tag + "\"");
if (index >= 0)
{
val = json.Substring(index + tag.Length + 2);
int end_index_1 = val.IndexOf("\",");
int end_index_2 = val.IndexOf("}");
if (end_index_1 < end_index_2 && end_index_1 >= 0)
{
val = val.Substring(0, end_index_1);
val = val.Replace("\"", "").Replace(":", "");
}
else
{
if (index > 0)
{
val = val.Substring(0, end_index_2);
val = val.Replace("\"", "").Replace(":", "");
}
}
}
}
}
catch (Exception ex)
{
//Log.Info("tag=" + tag + ";json=" + json);
//Log.Error(ex.Message, ex);
throw ex;
}
//Log.Info("GetValueForJson 结束--------------");
return val;