解决方案 »

  1.   

    保存成html得到如下内容{"status":"ok","body":"{\"pageData\":[{\"id\":188,\"name\":\"京闽盛之乡温泉\",\"shortName\":\"京闽盛之乡温泉\",\"ticketType\":\"2\",\"star\":\"4\",\"openTime\":\"周一至周五:12:00-24:00 周末:10:00-24:00\",\"bestTravelTime\":\"\",\"notice\":\"<p><strong>2014年9月5日到2014年9月8日中秋执行周末价,2014年10月1日-5日国庆执行黄金周价格,2014年10月6日-7日执行平日价。</strong></p>\\r\\n\\r\\n<p><strong>【限价要求】:团队(10人及10人以上)---平日,对外建议售价不得低于108元,团队(10人及10人以上)---周末,对外建议售价不得低于128元,平日票对外建议售价不得低于98元,周末票对外建议售价不得低于128元。</strong></p>\\r\\n\\r\\n<div>有效期:自购买之日起一个月内有效</div>\\r\\n\\r\\n<div>&nbsp;</div>\\r\\n\\r\\n<div>截止日期,以免给您造成不必要的损失</div>\\r\\n\\r\\n<div><strong>验证方式:凭12位数字兑换密码,到景区报&ldquo;芝麻游&rdquo;验证消费</strong></div>\\r\\n\\r\\n<p>验证窗口:温泉接待前台</p>\\r\\n\\r\\n<p><strong>特别提示:平日/周末团队票要求团队人员同时进入景区一次验证消费</strong></p>\\r\\n\\r\\n<p>游泳请自带泳衣、泳帽;为避免碰伤,温泉池禁止游泳<br />\\r\\n特殊温泉池需另外付费,不包含在本票价范围内</p>\\r\\n\\r\\n<p>1M以下儿童免票,1M-1.4M儿童到景区现付58元,具体规定以景区规定为准。</p>\\r\\n\\r\\n<p>&nbsp;</p>\\r\\n\",\"b2cNotice\":\"<p><strong>2014年9月5日到2014年9月8日中秋执行周末价,2014年10月1日-5日国庆执行黄金周价格,2014年10月6日-7日执行平日价。</strong></p>\\r\\n\\r\\n<p><strong>购买说明:团队票要求团队人员同时进入景区一次验证消费</strong></p>\\r\\n\\r\\n<p>有效期:自购买之日起一个月内有效</p>\\r\\n\\r\\n<p>截止日期,以免给您造成不必要的损失</p>\\r\\n\\r\\n<p><strong>验证方式:凭12位数字兑换密码,到景区报&ldquo;芝麻游&rdquo;验证消费</strong></p>\\r\\n\\r\\n<p><strong>验证窗口:温泉接待前台</strong></p>\\r\\n\\r\\n<p><strong>特别提示:平日/周末团队票要求团队人员同时进入景区一次验证消费</strong></p>\\r\\n\\r\\n<p><strong>游泳请自带泳衣、泳帽;为避免碰伤,温泉池禁止游泳<br />\\r\\n特殊温泉池需另外付费,不包含在本票价范围内</strong></p>\\r\\n\\r\\n<p><strong>1M以下儿童免票,1M-1.4M儿童到景区现付58元,具体规定以景区规定为准。</strong></p>\\r\\n\\r\\n<p>&nbsp;</p>\\r\\n\",\"description\":\"<p>&nbsp; &nbsp; &nbsp; 在腾腾热气中,缓缓舒展身躯,微闭双眼,放空心灵。美丽的初春映衬出一派朦胧而诗意的景象。用金秋的心情欣赏这舒柔的春,让空灵的心境慰藉疲惫的身躯。给思想一双翅膀,在一处美丽娴静的地方。<br />\\r\\n<strong>&nbsp;</strong>&nbsp; &nbsp; &nbsp;盛之乡戴斯温泉渡假村水源取自汀溪地下天然温泉。温泉属碳酸氢钠泉,水质中性温和,富含钾、钠、镁、钙、铁等多种对人体有益的矿物质和微量元素,出水温度约50度,乃罕见上乘温泉。渡假村共有55种不同风格的SPA汤池(香草温泉区、养生温泉区、排毒养颜温泉区等);让您在这片碧幽、灵动的世外桃源达到彻底的身心放松,带给您独特非凡的享受。</p>\\r\\n\\r\\n<p>&nbsp; &nbsp; &nbsp; 盛之乡戴斯温泉渡假村座落于厦门同安区汀溪镇朝元路1168号,324国道边,距厦门机场约30公里,距离火车站约36公里,占地面积约23万平方米,交通地理位置优越。渡假村毗邻风景优美的同安汀溪水库,依山而建,青山环抱,溪水潺潺,亭台楼阁,是休闲、旅游、度假、泡汤、集会的一大圣地。客房以大面积的原木、石材做装饰,生活用品均采用纯天然藤、棉、麻等原生态材料制成,倡导自然、原生态的养生理念。清晨推开窗户,呼吸着含有桂花香味的新鲜空气,让身心陶醉在这片世外桃源;晚上,山峦迭起间,与心爱的TA坐在露台上寻找天空中最美的那颗星星。<br />\\r\\n&nbsp; &nbsp; &nbsp; 酒店餐厅特聘台湾知名总厨为您料理饕餮美宴,让您在休闲、渡假之余也能品尝到地道的美食。</p>\\r\\n\",\"imgUrl\":\"SCENIC/173/1350285131938.jpg\",\"status\":\"1\",\"contact\":\"0592-3758989\",\"addr\":\"同安区汀溪镇朝元路1168号\",\"idCardAccepted\":\"0\",\"agreement\":\"<p><strong>2014年9月5日到2014年9月8日中秋执行周末价,2014年10月1日-5日国庆执行黄金周价格,2014年10月6日-7日执行平日价。</strong></p>\\r\\n\\r\\n<p><strong>【限价要求】:团队(10人及10人以上)---平日,对外建议售价不得低于108元,团队(10人及10人以上)---周末,对外建议售价不得低于128元,平日票对外建议售价不得低于98元,周末票对外建议售价不得低于128元。</strong></p>\\r\\n\\r\\n<p>&nbsp;</p>\\r\\n\",\"latitude\":24.765100479126,\"longitude\":118.151000976562,\"provinceName\":\"福建\",\"cityName\":\"厦门\",\"transportation\":\"</p>\\r\\n\",\"isRealName\":\"0\",\"startDateFlag\":\"1\",\"idCardNeeded\":\"0\",\"purchaseType\":\"SELF\"}],\"pageInfo\":{\"currentPageNum\":1,\"pageSize\":5,\"totalPageNum\":1,\"totalRowNum\":4}}","sign":"85248080da50491df6c20c57a42c4946"}
      

  2.   

    就想把上面文字部分提取出来,但是里面有一些如\\r\\n\\r\\n这样的字符串,一行为一条数据。
      

  3.   

    用json库解析,参考
    http://www.cnblogs.com/del/archive/2009/10/22/1588384.html
      

  4.   

    用json库解析,参考
    http://www.cnblogs.com/del/archive/2009/10/22/1588384.html能来个简单的例子吗?这个之前听说josn有工具包可以解决,但是从来没使用过,不知道怎么入手
      

  5.   

    用json库解析,参考
    http://www.cnblogs.com/del/archive/2009/10/22/1588384.html能来个简单的例子吗?这个之前听说josn有工具包可以解决,但是从来没使用过,不知道怎么入手
    你提供个获取数据的入口,这种复制来粘帖去,格式就变了,最好直接获取到数据然后解析。
      

  6.   

    用json库解析,参考
    http://www.cnblogs.com/del/archive/2009/10/22/1588384.html能来个简单的例子吗?这个之前听说josn有工具包可以解决,但是从来没使用过,不知道怎么入手
    你提供个获取数据的入口,这种复制来粘帖去,格式就变了,最好直接获取到数据然后解析。以下是我写的代码:
    procedure TForm1.btn1Click(Sender: TObject);
    var
      Param:TStringList;
      RStream:TStringStream;  s:TidHashMessageDigest5;
      bt:tidbytes;begin
      Param:=TStringList.Create;
      RStream:=TStringStream.Create('',65001);
      //idhtp1.Request.AcceptLanguage:='UTF-8';  edt11.Text:=edt1.Text+edt2.text+edt3.text+edt4.text;
      bt:=tidbytes(TEncoding.UTF8.GetBytes(edt11.Text));
      s:=TIdHashMessageDigest5.Create;  Param.Add('u='+edt1.Text);
      Param.Add('p='+edt2.Text);
      Param.Add('body='+edt3.Text);
      Param.Add('sign='+s.HashBytesAsHex(bt).ToLower);
      //ShowMessage(s.HashBytesAsHex(bt).ToLower);  IdHTP1.Post('http://test.zmyou.com/union/api/et/scenic!api.action',Param,RStream);  mmo1.Text:=UTF8Decode(RStream.DataString);    //未加UTF8Decode函数前乱码
      mmo1.Text:=RStream.DataString;
    end;其中:
    edt1.text :=  'api_test';
    edt2.text :=  'c4ca4238a0b923820dcc509a6f75849b';
    edt3.text :=  '{"action":"GET_SCENIC_LIST","currentPageNum":1,"pageSize":5,"name":"温泉","typeList":["1","2"],"starList":["5","4"],"provinceList":["福建"],"cityList":["厦门","泉州"]}'
    edt4.text := 'ot7M30XwoGL35IOl';sign:=edt1.Text+edt2.text+edt3.text+edt4.text;//edt11.text以上是相关代码及参数。麻烦弄个demo,目的就是提取里面的数据,要么每行一个数据,要么就是一段文字一个数据,post你就可以看到数据了
      

  7.   

    很明显是一个json, 用superobject吧
      

  8.   


    弄个demo解析这些数据一下啊,没玩过哦!正学习这东东呢
      

  9.   

    procedure TForm1.btn1Click(Sender: TObject);
    var
      Param: TStringList;
      RStream: TStringStream;  s: TidHashMessageDigest5;
      bt: tidbytes;  json: ISuperObject;  item: ISuperObject;
      i: TObject;
    begin
      Param := TStringList.Create;
      RStream := TStringStream.Create('', 65001);  edt11.Text := edt1.Text + edt2.Text + edt3.Text + edt4.Text;
      bt := tidbytes(TEncoding.UTF8.GetBytes(edt11.Text));
      s := TidHashMessageDigest5.Create;  Param.Add('u=' + edt1.Text);
      Param.Add('p=' + edt2.Text);
      Param.Add('body=' + edt3.Text);
      Param.Add('sign=' + s.HashBytesAsHex(bt).ToLower);
      s.Free;  idhtp1.Post('http://test.zmyou.com/union/api/et/scenic!api.action',
        Param, RStream);  json := SO(RStream.DataString);
      if (Assigned(json)) and (json['status'].AsString = 'ok') then
      begin
        json := json['body'];
        item := SO(json.AsString)['pageData'];
        mmo1.Lines.Add(item.AsArray[0]['name'].AsString);
        mmo1.Lines.Add(item.AsArray[0]['notice'].AsString);
      end;end;
    delphi xe7下测试通过
    superobject可从我#4提供的地址下载得到。