json .net C# 判断某对象是否存在。

C#在意串json中,有好多大括号围起来的对象,但每个对象里的对象又不完全一致,比如一个对象{age:10,name:Lee},另一个对象则为{name:Xiao,Id:... C# 在意串json中,有好多大括号围起来的对象,但每个对象里的对象又不完全一致,比如一个对象{age:10,name:Lee},另一个对象则为{name:Xiao,Id:10086},遍历属性(age,name,id)判断如果该对象没有想应的属性就设为默认值!求教如果操作 展开
 我来答
83056224
2013-09-03
知道答主
回答量:43
采纳率:0%
帮助的人:27.5万
展开全部
给你个例子吧
$.ajax({
type: "get",
url: "aqjk_BJSJ.ashx",
success: function(data) {
if (flag) {
$("#tbBJ").empty("");
}
var obj = JSON.parse(data);
var yichang = "<img src='../Skins/Default/Images/Index/hong.gif'>";
var zhengchang = "<img src='../Skins/Default/Images/Index/lv.gif'>";
$.each(obj, function(index, table) {
table = obj;
$("#tbBJ").html("<tr><th align='center' scope='col'>矿井</th><th align='center' scope='col'>安全监控</th><th align='center' scope='col'>人员定位</th><th align='center' scope='col'>供电管理</th><th align='center' scope='col'>束管监测</th><th align='center' scope='col'>瓦斯抽放</th></tr>");
$.each(table.Rows, function(index, row) {
$("#tbBJ").html($("#tbBJ").html() + "<tr><td align='center' style='width:80px;'>" + row.KJ + "</td><td align='center' style='width:60px;'>" + (parseFloat(row.jcjk) < 5 ? zhengchang : yichang) + "</td><td align='center' style='width:60px;'>" + (parseFloat(row.rydw) < 5 ? zhengchang : yichang) + "</td><td align='center' style='width:60px;'>" + (parseFloat(row.aqgd) < 10 ? zhengchang : yichang) + "</td><td align='center' style='width:60px;'>" + (parseFloat(row.sgjc) < 10 ? zhengchang : yichang) + "</td><td align='center' style='width:60px;'>" + (parseFloat(row.wscf) < 5 ? zhengchang : yichang) + "</td></tr>");
});
});
flag = true;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
这是js
这是组装json的
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class aqjk_BJSJ : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write(GetAQSet());
}
/// <summary>
/// 获取安全监控数据
/// </summary>
/// <returns></returns>
public string GetAQSet()
{
// using (MySqlHelper helper = new MySqlHelper(System.Configuration.ConfigurationManager.ConnectionStrings["curveData"].ToString()))
// {
// System.Text.StringBuilder sql = new System.Text.StringBuilder();
// sql.Append(@"
// select 矿名,安装位置,值,状态,时间,传感器类型,单位 from jc_RealTimeDataView
// where 状态='报警' order by 时间 ");
// DataSet ds = helper.ExecuteDataSet(sql.ToString(), CommandType.Text);
// return JSONHelper.DatasetJson(ds);
// }
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
using (MySqlHelper helper = new MySqlHelper(System.Configuration.ConfigurationManager.ConnectionStrings["LRConn"].ToString()))
{
System.Text.StringBuilder sql = new System.Text.StringBuilder();
sql.Append(@"
declare @Name nvarchar(64)
declare @NO nvarchar(64)
create table #a(KJ nvarchar(64),No nvarchar(64),rydw int,aqgd int,sgjc int,wscf int)--创建临时表
DECLARE MY_CUR CURSOR FOR --声明游标
SELECT short_name,mine_id as No
FROM [zkjtrydw].[dbo].[rykj]
OPEN MY_CUR --打开游标
FETCH NEXT FROM MY_CUR --获取游标的下一行
into @Name,@NO
WHILE @@FETCH_STATUS = 0 --FETCH语句执行成功
BEGIN
insert into #a
select @Name,@No,
isnull(datediff(n,(select MAX(readtime) as rydwTime from [zkjtrydw].[dbo].[ryss_"+DateTime.Now.ToString("yyyyMMdd")+@"] where mine_id=@NO),GETDATE()),999),
isnull(datediff(n,(select max(时间) as aqgdTime from [lzjtaqgd].[dbo].[gdss_" + DateTime.Now.ToString("yyyyMM") + @"] where 矿井编号=@NO),GETDATE()),999),
isnull(datediff(n,(select MAX(采集时间) as sgjcTime from [lzjtsgjc].[dbo].[sgss_" + DateTime.Now.ToString("yyyyMM") + @"] where 矿井编号=@NO),GETDATE()),999),
isnull(datediff(n,(select MAX(截止时间) as wscfTime FROM [lzjtwscf].[dbo].[cfljl_" + DateTime.Now.ToString("yyyyMM") + @"] where 矿井编号=@NO),GETDATE()),999)
FETCH NEXT FROM MY_CUR --获取游标的下一行
into @Name,@NO
END
CLOSE MY_CUR --关闭游标
DEALLOCATE MY_CUR --释放游标
select * from #a
drop table #a ");
dt = helper.ExecuteDataSet(sql.ToString(), CommandType.Text).Tables[0];
}
using (MySqlHelper helper = new MySqlHelper(System.Configuration.ConfigurationManager.ConnectionStrings["curveData"].ToString()))
{
StringBuilder sql = new StringBuilder();
//sql.Append(@" select '【'+矿名+'】'+Convert(varchar(24),时间,120)+' 数据中断,原因:网络中断或接口未运行!' as WLZT from maxtime_view where datediff(n,时间,getdate())>5 ");
sql.Append(@" select distinct 矿名,时间,监测系统 from [通风联网].[dbo].[jc_RealTimeDataView] ");
dt2 = helper.ExecuteDataSet(sql.ToString(), CommandType.Text).Tables[0];
}
dt.Columns.Add("jcjk");
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt2.Rows.Count; j++)
{
if (dt2.Rows[j]["矿名"].ToString().IndexOf(dt.Rows[i]["KJ"].ToString().Substring(0, 2)) > -1)
{
DateTime time1 = Convert.ToDateTime(dt2.Rows[j]["时间"].ToString());
//取得第二个时间
DateTime time2 = DateTime.Now;
//相减得到时间差
TimeSpan ts = time2 - time1;
dt.Rows[i]["jcjk"] = ts.Minutes;
break;
}

}
if (dt.Rows[i]["jcjk"].ToString() == "")
{
dt.Rows[i]["jcjk"] = "999";
}

}
return JSONHelper.DataTableJson(dt);
}
public bool IsReusable
{
get
{
return false;
}
}
}
hntjlj
推荐于2018-04-12 · 超过14用户采纳过TA的回答
知道答主
回答量:41
采纳率:100%
帮助的人:34万
展开全部
C# 中操作和 js 操作是不同的。
C# json["id"] == null
JS json.id == undefined
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fly勇敢的心120
2015-11-07 · TA获得超过2.1万个赞
知道大有可为答主
回答量:6968
采纳率:76%
帮助的人:543万
展开全部
C# 中操作和 js 操作是不同的。 C# json["id"] == null JS json.id == undefined
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w199096zx
2013-09-15
知道答主
回答量:5
采纳率:0%
帮助的人:6754
展开全部
你直接判断==“”即可啊~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式