asp逐条读取json中的新闻

mz48602 2016-10-28 04:52:09
{
"item": [
{
"media_id": "111111111111",
"content": {
"news_item": [
{
"title": "aaaaaaaaaaa111111111111",
"author": "",
"digest": "aaaaa",
"content": "dasfasfasdf",
"content_source_url": "",
"thumb_media_id": "222222222222222211111111111",
"show_cover_pic": 0,
"url": "dddddddddddddd2222222222222222",
"thumb_url": "ffffffffffffffssssssssssssssssss"
}
],
"create_time": 1454771038,
"update_time": 1454771234
},
"update_time": 1454771234
},
{
"media_id": "222222222222222222222222",
"content": {
"news_item": [
{
"title": "bbbb",
"author": "",
"digest": "dddddddddddddd",
"content": "dddddddddffffffffffffff",
"content_source_url": "",
"thumb_media_id": "OKYCWs9AsE4iVttOm0C3ktJUiBgJ766yZoHoiGkxeA0",
"show_cover_pic": 0,
"url": "hhhhhhhhhhhhhhhhh",
"thumb_url": "ggggggggggggggggggggggggg"
}
],
"create_time": 1454683014,
"update_time": 1454683127
},
"update_time": 1454683127
},
{
"media_id": "33333333333333",
"content": {
"news_item": [
{
"title": "ccccccccccccc",
"author": "",
"digest": "ccccccccccccccccccvvvvvvvvvvvvvvvvvv",
"content_source_url": "",
"thumb_media_id": "vcvcvcv",
"show_cover_pic": 0,
"url": "vvvvvvvvvvvvvvcccccccccccccc",
"thumb_url": "kkkkkkkkkkkkkvvvvvvvvvvvvv"
}
],
"create_time": 1447315546,
"update_time": 1453449705
},
"update_time": 1453449705
}
],
"total_count": 4,
"item_count": 4
}
...全文
390 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mz48602 2016-10-31
  • 打赏
  • 举报
回复
[quote=引用 4 楼 xiangyuecn 的回复:]

<%
set items=xxx("{item:[{content:{news_item:[{title:'xxx',content:'vvv'}]}},{content:{news_item:[{title:'222',content:'3333'}]}}]}")
for each data in items
	Response.Write jsx(data,"title")&"--"&jsx(data,"content")
next
%>
<script language="javascript" runat="server">
function xxx(s){
	var rtv=[];
	var items=eval("("+s+")").item||[];
	for(var i=0;i<items.length;i++){
		var item=items[i].content||{};
		item=item.news_item||[];
		item=item[0];
		if(item){
			rtv.push(item);
		}
	}
	return rtv;
}
function jsx(obj,key){
	return obj[key]||"";
}
</script>
先谢谢你,title和content已经可以提取出来了 怎么提取“media_id”和“update_time”呢? 请大神赐教!
lty696 2016-10-31
  • 打赏
  • 举报
回复
{
    "item": [
        {
            "media_id": "111111111111",
            "content": {
                "news_item": [
                    {
                        "title": "aaaaaaaaaa",
                        "content": "dasfasfasdf"
                    }
                ],
                "update_time1": 1454771234
            },
            "update_time2": 1454771234
        },
        {
            "media_id": "222222222222",
            "content": {
                "news_item": [
                    {
                        "title": "bbbbbbbb",
                        "content": "dasfasfasdf"
                    }
                ],
                "update_time1": 1453449705
            },
            "update_time2": 1453449705
        }
    ],
    "total_count": 2,
    "item_count": 2
}
这段json用四楼大神的方法已经成功提取出title和 content, 但是media_id、和update_time1及update_time2却无法提取,还请赐教!
高坚果兄弟 2016-10-30
  • 打赏
  • 举报
回复

<%
set items=xxx("{item:[{content:{news_item:[{title:'xxx',content:'vvv'}]}},{content:{news_item:[{title:'222',content:'3333'}]}}]}")
for each data in items
	Response.Write jsx(data,"title")&"--"&jsx(data,"content")
next
%>
<script language="javascript" runat="server">
function xxx(s){
	var rtv=[];
	var items=eval("("+s+")").item||[];
	for(var i=0;i<items.length;i++){
		var item=items[i].content||{};
		item=item.news_item||[];
		item=item[0];
		if(item){
			rtv.push(item);
		}
	}
	return rtv;
}
function jsx(obj,key){
	return obj[key]||"";
}
</script>
看你有些属性不一定有 要特殊读取方式,vb容易歇菜
高坚果兄弟 2016-10-30
  • 打赏
  • 举报
回复

<%
set items=xxx("{item:[{content:{news_item:[{title:'xxx',content:'vvv'}]}},{content:{news_item:[{title:'222',content:'3333'}]}}]}")
for each data in items
	Response.Write data.title&"--"&data.content
next
%>
<script language="javascript" runat="server">
function xxx(s){
	var rtv=[];
	var items=eval("("+s+")").item||[];
	for(var i=0;i<items.length;i++){
		var item=items[i].content||{};
		item=item.news_item||[];
		item=item[0];
		if(item){
			rtv.push(item);
		}
	}
	return rtv;
}
</script>
asp可以运行js代码,妥妥的,最好用的服务器端开发方式
  • 打赏
  • 举报
回复
如果只有,内部的for each可以去掉,直接改为 set newsitem=content.item("news_item").item(0)
  • 打赏
  • 举报
回复
下载这个类库导入就可以解析了:asp json类库解析json字符串
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="aspJSON1.17.asp"-->
<%
function readcontent(path)
  dim fso,txtstream
  set fso=server.CreateObject("scripting.filesystemobject")
  set txtstream=fso.OpenTextFile(path)
  readcontent=txtstream.readall
  txtstream.close
  set txtstream=nothing
  set fso=nothing
end function

s=readcontent(server.MapPath("json.txt"))'''''''''''''''''''''注意修改这个变量为你的那些json字符串内容,我这里测试直接存入同目录下的json.txt里面了
Set oJSON = New aspJSON
oJSON.loadJSON(s)
response.Write "总数:"&oJSON.data("total_count")&"<br>新闻列表<hr>"
for each itemindex in oJSON.data("item")'遍历item数组
  set item=oJSON.data("item").item(itemindex)
  response.Write "media_id:"&item.item("media_id")&"<br>"
  set content=item.item("content")
  for each newsindex in content.item("news_item")
    set newsitem=content.item("news_item").item(newsindex)
    response.Write  "title:"&newsitem.item("title")&"<br>"
    response.Write  "author:"&newsitem.item("author")&"<br>"
    response.Write  "content:"&newsitem.item("content")&"<br>"
    '''更多属性。。。
  next
  response.Write "<hr>"
next
%>

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧