aardio代碼實(shí)現(xiàn)jsonPath

純aardio代碼實(shí)現(xiàn)jsonPath吐绵。
注意:[(…)],[?(…)] 里面的表達(dá)式要用aardio對應(yīng)對象方法操作对妄。

import web.json;

namespace myplu

class jsonPath {
    ctor( jsn ) {
        if(type(jsn) !== "table"){
            jsn = ..web.json.parse(jsn);
        }
        this._jsonObj = jsn;
    };
    type = "myplu.jsonPath";
    _REGEX_PARENT = "..";   // 用來跨級查找   ..
    _REGEX_POINT = "\[\(([\w\W]+)\)\]"; // 表達(dá)式轉(zhuǎn)為下標(biāo)值 [(…)]
    _REGEX_FILTER = "\[\??\(([\w\W]+)\)\]"; // 條件過濾 [?(…)]
    _REGEX_SLICE = "\[\s*(-?\d*)\s*\:\s*(-?\d*)\s*\:?\s*(\d*)\s*\]";    // 數(shù)組分割 [start:end:step]
    _normalize = function(expr) {
        // 提取[…]格式
        var pattern = "%\[\]"
        var sub = ..string.matches(expr, pattern);
        
        // 將[…]先去掉
        var str = ..string.replace(expr, "%\[\]", ";[#]");
        // 然后將.;替換成;
        str = ..string.replace(str, "\.;?", ";");
        // 去掉多余的空白符
        str = ..string.replace(str, "\s+", "");
        // 還原..符號
        str = ..string.replace(str, ";{2,}", ";..;");
        // 拆分表達(dá)式
        str = ..string.split(str, ";");
        for (k, v in str) {
            // 還原[…]表達(dá)式
            if (v === "[#]") {
                var t = ..table.remove(sub);
                t = t[1];
                
                // 格式化 [p1,p2,p3] [\d:\d:\d] [*] 表達(dá)式
                if (..string.find(t, "^[\[\]\s\d-,\:\*]+$")) {
                    t = ..string.replace(t, "\s", "");
                }
                else {
                    // 格式化 [?(…)] [(…)] ["p1","p2","p3"]表達(dá)式
                    t = ..string.replace(t, "^\[\s*", "[");
                    t = ..string.replace(t, "\s*\]$", "]");
                }
                
                // [\d] ["key"] ['key'] [\d,\d] ["key","key1"] 轉(zhuǎn)為值或數(shù)組
                if(..string.find(t,this._REGEX_SLICE) or ..string.find(t,this._REGEX_FILTER)){   
                }else {
                    t = ..web.json.parse(t);
                    select(#t) {
                        case 0 {
                            t = "*";
                        }
                        case 1 {
                            t = t[1];
                        }                       
                    }
                }
                
                str[k] = t;
            }
        }
        return str;
    };
    _eval = function (exp,_v) {
        if(type(_v) !== "table"){
            return ; 
        }
        exp = ..string.replace(exp,"\@","_v");
        //..console.log(exp,_v);
        var f = assert( loadcode("var _v = ...;return (" + exp + ")") );
        return f(_v);
    };
    _trace = function(index, value, jMap, parent) {
        // 是否跨級查找
        var loc = parent: jMap[index];
        // 有表達(dá)式才查找
        if (loc) {
            // 查找目標(biāo)為對象湘今,而且有表達(dá)式才執(zhí)行查找
            if(type(value) == "table"){
                if (value[[loc]]) {
                    // 直接取值
                    this._trace(index + 1, value[[loc]], jMap);
                }
                elseif(..table.isArray(loc)){
                    // ["key"] ['key'] [1] [p1,p2,p3] ["p1","p2","p3"]
                    for(k,v in loc){
                        this._trace(index, value, jMap, v);
                    }                   
                }               
                elseif(loc === "*") { 
                    // [*]
                    for (k, v in value) {
                        this._trace(index + 1, v, jMap);
                    }                
                }
                elseif(loc === this._REGEX_PARENT) {
                    // ..
                    this._trace(index + 1, value, jMap);
                    for (k, v in value) {
                        this._trace(index, v, jMap, this._REGEX_PARENT);
                    }                   
                }
                elseif(..string.find(loc, this._REGEX_SLICE) && ..table.isArray(value)) {
                    // [start:end:step] 數(shù)組類型
                    var step = ..string.matches(loc, this._REGEX_SLICE);
                    var st, ed, sp = ..table.unpack(step[1]);
                    var res = ..table.slice(value, tonumber(st), tonumber(ed));
                    for (i = 1; #res; tonumber(sp)) {
                        this._trace(index + 1, res[i], jMap);
                    }
                }
                elseif(..string.find(loc, this._REGEX_POINT) && ..table.isArray(value)) {
                    // [(…)]
                    var point = ..string.match(loc, this._REGEX_POINT); 
                    var res = this._eval(point, value);
                    if(!res){
                        return ; 
                    }
                    if(type(res) == "table"){
                        for(k,v in res){
                            this._trace(index, value, jMap, v);
                        }                       
                    }else {
                        this._trace(index, value, jMap, res);
                    }                   
                }
                elseif(..string.find(loc, this._REGEX_FILTER) && ..table.isArray(value)) {
                    // [?(…)]  
                    var filter = ..string.match(loc, this._REGEX_FILTER); 
                    //..console.dump(loc,value);   
                    for(k,v in value){
                        var res = this._eval(filter, v);
                        if(res){
                            this._trace(index+1, v, jMap);
                        }                       
                    }                   
                }   
            }         
        }
        else {
            //..console.dump(value);
            // 非對象直接返回查找結(jié)果
            ..table.push(this.resultItems,value); 
        }
    };
    ["selectList"] = function(jsonpath, node) {
        node := this._jsonObj;
        if(type(node) !== "table"){
            node = ..web.json.parse(node);
        }
        var jMap = this._normalize(jsonpath);
        //..console.dump(jMap); 
        this.resultItems = {};
        this._trace(2, node, jMap);
        var res = this.resultItems;
        return res; 
    };    
    ["select"] = function(jsonpath, node) {
        var res = this.selectList(jsonpath, node);
        if(#res){
            return res[1]; 
        }
    };
}

namespace jsonPath;

/*****intellisense(myplu)
jsonPath = 導(dǎo)入jsonPath庫
jsonPath(__) = 創(chuàng)建jsonPath選擇器,@1 為json字符串或者table對象剪菱。
jsonPath() = !myjpObj.
end intellisense*****/

/*****intellisense(!myjpObj)
selectList(__) = 抽取列表摩瞎。@1 為jsonPath表達(dá)式, @2 可選孝常,抽取對象旗们。\n 參考:https://goessner.net/articles/JsonPath/
select(__) = 抽取單值。@1 為jsonPath表達(dá)式构灸, @2 可選上渴,抽取對象。\n 參考:https://goessner.net/articles/JsonPath/
end intellisense*****/

簡單測試:

import console;
import myplu.jsonPath;

var a = `[{"searchValue":null,"createBy":"***","createTime":"2023-12-16 19:02:29","updateBy":"***","updateTime":"2024-03-15 08:33:40","remark":null,"params":{},"newRoleIds":null,"newRole":null,"onlineNumber":null,"sysPost":null,"userid":null,"id":794,"productName":"德國馬牌235/50R19 99V FR UC6 SUV","productShortName":"德國馬牌ContinentalUltraContact UC6 SUV","productCode":"TMTP2023121619003","materialCode":"017001-01100","partNumber":null,"productTypeId":36,"productTypeName":"德國馬牌","productTypeParentId":6,"productTypeParentName":"品牌輪胎","productSaleType":1,"productCategory":1,"productBrandId":12,"productBrandName":"德國馬牌","productBrandEnglishName":null,"productMiniLogo":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/minilogo/shopmall_product_info/b5fe0f1b4ad0424cb9a207b5f7452aab.png","productLogoImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/772a929e3cb442b284c539b406abe4c1.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/3cbdfa4845ba47fd897dc34da9431832.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/61a6eb58c847485abc199c8c15ab6c2a.png","productDesc":null,"productDescImgSrcs":null,"imgAccessoryId":null,"productDescImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/descimg/shopmall_product_info/c84af353e394417e8f8a4b509ac9b27c.png","productCrossedPrice":null,"productSalePrice":1099.0,"productSupplier":"大陸馬牌輪胎(中國)有限公司","productMaker":"大陸馬牌輪胎(中國)有限公司","productModel":"UltraCont UC6 SUV","productSpecs":"235/50R19","productSaleLabel":null,"productUnit":"條","productMinSaleNum":1,"productVirtualSaleNum":2,"productSaleTotal":null,"productSingleMaxnum":4,"productCusMaxnum":null,"aftersaleDesc":null,"productSaleOrg":1,"productServiceType":null,"productShowStatus":1,"productSaleStatus":1,"isHomepageShow":0,"buyQuantity":null,"showPage":2,"showActivityId":null,"isFit":0,"isHaveGift":1,"isHaveActivity":0,"activityName":null,"isHaveCoupon":1,"productLabels":["防滑","靜音"],"activityLabels":null,"tireSize":"2
35/50 R19
","tireLoad":"775","tireSpeed":"240","tireFigure":null,"tireDiameter":null,"tireWidth":null,"tireAspectRatio":null,"supplierCode":null,"saleNum":"已售 2","shopmallProductBrand":null,"giftProducts":null,"activityInfos":null,"number":null,"activityLabel":null,"giftCount":4,"productLabel":"防滑,靜音","sales":null,"reduceSales":null,"bannerImg":null,"detailImg":null,"brandImg":null,"giftDetailImg":null,"giftProductNumRule":null,"couponLabel":34,"sortNum":0,"isHaveStock":null,"specParams":null,"autoGiveCoupon":0,"dot":null},{"searchValue":null,"createBy":"***","createTime":"2023-12-16 19:03:18","updateBy":"***","updateTime":"2024-03-15 08:33:40","remark":null,"params":{},"newRoleIds":null,"newRole":null,"onlineNumber":null,"sysPost":null,"userid":null,"id":795,"productName":"德國馬牌235/50R19 103V XL UC6 SUV","productShortName":"德國馬牌ContinentalUltraContact UC6 SUV","productCode":"TMTP2023121619004","materialCode":"017001-01543","partNumber":null,"productTypeId":36,"productTypeName":"德國馬牌","productTypeParentId":6,"productTypeParentName":"品牌輪胎","productSaleType":1,"productCategory":1,"productBrandId":12,"productBrandName":"德國馬牌","productBrandEnglishName":null,"productMiniLogo":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/minilogo/shopmall_product_info/1f6c2ce9782e45258ce4aaeaa3c950f5.png","productLogoImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/0859cb90ad2843cbbbb25ff059f60254.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/c21ff76ce076477aa21f7f5d8bedfcf5.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/e2354958b28e4449b3a4f0bf922d6770.png","productDesc":null,"productDescImgSrcs":null,"imgAccessoryId":null,"productDescImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/descimg/shopmall_product_info/13c9102f0c9f454f8dde77515273a4a6.png","productCrossedPrice":null,"productSalePrice":1159.0,"productSupplier":"大陸馬牌輪胎(中國)有限公司","productMaker":"大陸馬牌輪胎(中國)有限公司","productModel":"UltraCont UC6 SUV","produ
ctSpecs":"235/50R19","productSaleLabel":null,"productUnit":"條","productMinSaleNum":1,"productVirtualSaleNum":0,"productSaleTotal":null,"productSingleMaxnum":4,"productCusMaxnum":null,"aftersaleDesc":null,"productSaleOrg":1,"productServiceType":null,"productShowStatus":1,"productSaleStatus":1,"isHomepageShow":0,"buyQuantity":null,"showPage":2,"showActivityId":null,"isFit":0,"isHaveGift":1,"isHaveActivity":0,"activityName":null,"isHaveCoupon":1,"productLabels":["防滑","靜音"],"activityLabels":null,"tireSize":"235/50 R19","tireLoad":"875","tireSpeed":"240","tireFigure":null,"tireDiameter":null,"tireWidth":null,"tireAspectRatio":null,"supplierCode":null,"saleNum":"已售 0","shopmallProductBrand":null,"giftProducts":null,"activityInfos":null,"number":null,"activityLabel":null,"giftCount":4,"productLabel":"防滑,靜音","sales":null,"reduceSales":null,"bannerImg":null,"detailImg":null,"brandImg":null,"giftDetailImg":null,"giftProductNumRule":null,"couponLabel":34,"sortNum":0,"isHaveStock":null,"specParams":null,"autoGiveCoupon":0,"dot":null},{"searchValue":null,"createBy":"***","createTime":"2023-12-16 20:09:53","updateBy":"***","updateTime":"2024-03-15 08:33:40","remark":null,"params":{},"newRoleIds":null,"newRole":null,"onlineNumber":null,"sysPost":null,"userid":null,"id":869,"productName":"德國馬牌235/50R19 103V XL FR EC6","productShortName":"德國馬牌 EcoContact6 CEC6","productCode":"TMTP2023121620011","materialCode":"017001-01542","partNumber":null,"productTypeId":36,"productTypeName":"德國馬牌","productTypeParentId":6,"productTypeParentName":"品牌輪胎","productSaleType":1,"productCategory":1,"productBrandId":12,"productBrandName":"德國馬牌","productBrandEnglishName":null,"productMiniLogo":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/minilogo/shopmall_product_info/e424d6f115744c8c9b33ec8433ba0760.png","productLogoImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/41f7960716d84355a90f4d9e37386ddb.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/4e1abb931f6245948
1402069e1267c6c.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/44c7960b72c54f13907d319d4a9418dd.png","productDesc":null,"productDescImgSrcs":null,"imgAccessoryId":null,"productDescImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/descimg/shopmall_product_info/39e0578bbd44448593e5f2e523dae0f2.jpg","productCrossedPrice":null,"productSalePrice":1169.0,"productSupplier":"大陸馬牌輪胎(中國)有限公司","productMaker":"大陸馬牌輪胎(中國)有限公司","productModel":"EcoContact 6","productSpecs":"235/50R19","productSaleLabel":null,"productUnit":"條","productMinSaleNum":1,"productVirtualSaleNum":0,"productSaleTotal":null,"productSingleMaxnum":4,"productCusMaxnum":null,"aftersaleDesc":null,"productSaleOrg":1,"productServiceType":null,"productShowStatus":1,"productSaleStatus":1,"isHomepageShow":0,"buyQuantity":null,"showPage":2,"showActivityId":null,"isFit":0,"isHaveGift":1,"isHaveActivity":0,"activityName":null,"isHaveCoupon":1,"productLabels":["節(jié)油","靜音"],"activityLabels":null,"tireSize":"235/50 R19","tireLoad":"875","tireSpeed":"240","tireFigure":null,"tireDiameter":null,"tireWidth":null,"tireAspectRatio":null,"supplierCode":null,"saleNum":"已售 0","shopmallProductBrand":null,"giftProducts":null,"activityInfos":null,"number":null,"activityLabel":null,"giftCount":4,"productLabel":"節(jié)油,靜音","sales":null,"reduceSales":null,"bannerImg":null,"detailImg":null,"brandImg":null,"giftDetailImg":null,"giftProductNumRule":null,"couponLabel":34,"sortNum":0,"isHaveStock":null,"specParams":null,"autoGiveCoupon":0,"dot":null},{"searchValue":null,"createBy":"***","createTime":"2023-12-16 20:35:12","updateBy":"***","updateTime":"2024-03-15 08:33:40","remark":null,"params":{},"newRoleIds":null,"newRole":null,"onlineNumber":null,"sysPost":null,"userid":null,"id":895,"productName":"德國馬牌235/50R19 99V FR CCLXSP","productShortName":"德國馬牌ContiCrossContactLX Sport","productCode":"TMTP2023121620039","materialCode":"017001-01541","partNumber":null,"productTypeId":36,"productTypeName":"德國馬牌","productTypeParentId":6,"productTypePar
entName":"品牌輪胎","productSaleType":1,"productCategory":1,"productBrandId":12,"productBrandName":"德國馬牌","productBrandEnglishName":null,"productMiniLogo":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/minilogo/shopmall_product_info/2015a69b15c84c82be273115ba76e890.jpg","productLogoImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/9f86decf0050496d9165507cac9d7417.jpg","productDesc":null,"productDescImgSrcs":null,"imgAccessoryId":null,"productDescImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/descimg/shopmall_product_info/7c9e6716cda2476ca9772fc2cdaf6778.jpg","productCrossedPrice":null,"productSalePrice":1169.0,"productSupplier":"大陸馬牌輪胎(中國)有限公司","productMaker":"大陸馬牌輪胎(中國)有限公司","productModel":"CrossCont LX Sp","productSpecs":"235/50R19","productSaleLabel":null,"productUnit":"條","productMinSaleNum":1,"productVirtualSaleNum":0,"productSaleTotal":null,"productSingleMaxnum":4,"productCusMaxnum":null,"aftersaleDesc":null,"productSaleOrg":1,"productServiceType":null,"productShowStatus":1,"productSaleStatus":1,"isHomepageShow":0,"buyQuantity":null,"showPage":2,"showActivityId":null,"isFit":0,"isHaveGift":1,"isHaveActivity":0,"activityName":null,"isHaveCoupon":1,"productLabels":["操控","防滑"],"activityLabels":null,"tireSize":"235/50 R19","tireLoad":"775","tireSpeed":"240","tireFigure":null,"tireDiameter":null,"tireWidth":null,"tireAspectRatio":null,"supplierCode":null,"saleNum":"已售 0","shopmallProductBrand":null,"giftProducts":null,"activityInfos":null,"number":null,"activityLabel":null,"giftCount":4,"productLabel":"操控,防滑","sales":null,"reduceSales":null,"bannerImg":null,"detailImg":null,"brandImg":null,"giftDetailImg":null,"giftProductNumRule":null,"couponLabel":34,"sortNum":0,"isHaveStock":null,"specParams":null,"autoGiveCoupon":0,"dot":null},{"searchValue":null,"createBy":"***","createTime":"2023-12-29 11:29:17","updateBy":"***","updateTime":"2024-03-15 08:33:53","remark":null,"params":{},"newRoleIds":null,"newRole":null,"onlineNumber":null,"sysPost":null,"userid":n
ull,"id":1154,"productName":"米其林輪胎 攬途3 LATITUDE SPORT3 235/50R19 103V Michelin","productShortName":"米其林Michelin 攬途3 LATITUDE SPORT3","productCode":"TMTP2023122911006","materialCode":"017001-03674","partNumber":null,"productTypeId":37,"productTypeName":"米其林","productTypeParentId":6,"productTypeParentName":"品牌輪胎","productSaleType":1,"productCategory":1,"productBrandId":13,"productBrandName":"米其林","productBrandEnglishName":"Michelin","productMiniLogo":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/443d9610c2624800985fa83ef60d8335.png","productLogoImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/443d9610c2624800985fa83ef60d8335.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/fd4537770eb3487daefb220f05a4d532.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/3f7a9ad5bbac4455a71701be3e25f6f6.png,https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/logoimg/shopmall_product_info/db17603d3b2c4d4f97c491f164976bb1.png","productDesc":null,"productDescImgSrcs":null,"imgAccessoryId":null,"productDescImg":"https://tsf.obs.cn-bj1.ctyun.cn/wechat/xcx/product/descimg/shopmall_product_info/7b20f533a9874b2cb9e08409c65783b4.png","productCrossedPrice":null,"productSalePrice":1309.0,"productSupplier":"鄭州甲乙丙丁有限公司","productMaker":"米其林","productModel":"LATITUDE SPORT3","productSpecs":"235/50R19","productSaleLabel":"操控","productUnit":"條","productMinSaleNum":1,"productVirtualSaleNum":0,"productSaleTotal":null,"productSingleMaxnum":4,"productCusMaxnum":null,"aftersaleDesc":null,"productSaleOrg":1,"productServiceType":null,"productShowStatus":1,"productSaleStatus":1,"isHomepageShow":0,"buyQuantity":null,"showPage":2,"showActivityId":null,"isFit":0,"isHaveGift":1,"isHaveActivity":0,"activityName":null,"isHaveCoupon":1,"productLabels":["操控"],"activityLabels":null,"tireSize":"235/50 R19","tireLoad":"875","tireSpeed":"240","tireFigure":null,"tireDiameter":null,"tireWidth":null,"tireAspectRatio":null,"suppl
ierCode":null,"saleNum":"已售 0","shopmallProductBrand":null,"giftProducts":null,"activityInfos":null,"number":null,"activityLabel":null,"giftCount":4,"productLabel":"操控","sales":null,"reduceSales":null,"bannerImg":null,"detailImg":null,"brandImg":null,"giftDetailImg":null,"giftProductNumRule":null,"couponLabel":34,"sortNum":0,"isHaveStock":null,"specParams":null,"autoGiveCoupon":0,"dot":null}]`;

var jp = myplu.jsonPath(a);  
a = jp.selectList("$.[(table.len(@) - 1 )]")
console.dump(a);


a = jp.selectList(`$.[?(string.find(@["saleNum"],"0") )].saleNum`)
console.dump(a);

a = jp.selectList("$.[?(@.id == 1154)].productName")
console.dump(a);

a = jp.selectList(`$.[?(@["productTypeName"] == '德國馬牌' )].productName`)
console.dump(a);

console.pause();

參考:https://goessner.net/articles/JsonPath/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喜颁,一起剝皮案震驚了整個(gè)濱河市稠氮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌半开,老刑警劉巖隔披,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異寂拆,居然都是意外死亡奢米,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門纠永,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鬓长,“玉大人,你說我怎么就攤上這事渺蒿×∈浚” “怎么了彪薛?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵茂装,是天一觀的道長怠蹂。 經(jīng)常有香客問我,道長少态,這世上最難降的妖魔是什么城侧? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮彼妻,結(jié)果婚禮上嫌佑,老公的妹妹穿的比我還像新娘。我一直安慰自己侨歉,他們只是感情好屋摇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幽邓,像睡著了一般炮温。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上牵舵,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天柒啤,我揣著相機(jī)與錄音,去河邊找鬼畸颅。 笑死担巩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的没炒。 我是一名探鬼主播涛癌,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼送火!你這毒婦竟也來了祖很?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤漾脂,失蹤者是張志新(化名)和其女友劉穎假颇,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骨稿,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笨鸡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坦冠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片形耗。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖辙浑,靈堂內(nèi)的尸體忽然破棺而出激涤,到底是詐尸還是另有隱情,我是刑警寧澤判呕,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布倦踢,位于F島的核電站送滞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辱挥。R本人自食惡果不足惜犁嗅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晤碘。 院中可真熱鬧褂微,春花似錦、人聲如沸园爷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽童社。三九已至肥矢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叠洗,已是汗流浹背甘改。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灭抑,地道東北人十艾。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像腾节,于是被迫代替她去往敵國和親忘嫉。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容