jason渗透工具包,网站渗透工具包

作者:hacker 分类:入侵网站 时间:2022-07-17 10:33:20 浏览:93

内容导读:导航目录:1、Jason反演技术在天然气水合物速度分析中的应用2、jason是什么意思?3、如何使用***ON格式POST数据到服务器Jason反演技术在天然气水合物速度分析中的应用梁劲1 王宏斌1,2 梁金强1...……

导航目录:

Jason反演技术在天然气水合物速度分析中的应用

梁劲1 王宏斌1,2 梁金强1

(1.广州海洋地质调查局 广州 510760;2.中国地质大学(北京)北京 100083)

之一作者简介:梁劲,男,1971年生,高级工程师,1995年毕业于成都理工学院信息工程与地球物理系应用地球物理专业,主要从事天然气水合物调查与研究工作。

摘要 本文采用Jason 反演技术对南海北部陆坡A 测线纵波速度进行计算,结合BSR、振幅空白带以及波形极性反转等多种水合物赋存信息的分析,对水合物成矿带的速度特征进行了综合研究,结果表明:低速背景中的高速异常,是天然气水合物赋存的重要特征;高速异常体一般呈平行于海底的带状分布;在高速异常的内部,速度也是不断变化的。一般在异常体的中心速度更高,由中心到边缘速度逐渐降低,反映在水合物矿带内部,水合物饱和度由矿体中心向边缘逐渐降低的特征。本文的研究成果进一步表明高精度速度分析不仅可以帮助寻找水合物矿点,还可以进一步判定水合物的富集层位。

关键词 Jason 反演技术 天然气水合物 速度分析

1 前言

天然气水合物是在低温、高压环境下,由水的冰晶格架及其间吸附的天然气分子组成的笼状结构化合物,广泛分布于海底和永久冻土带。温度和压力是天然气水合物形成和保存最重要的因素(王宏斌等,2004)。针对天然气水合物的野外调查及研究表明:高分辨率的地震勘探 *** 是天然气水合物调查评价中行之有效的 *** 。地震反演技术一直是地震勘探中的一项核心技术,其目的是用地震反射资料反推地下的波阻抗、速度、孔隙度等参数的分布,从而估算含天然气水合物层参数,预测天然气水合物分布状况,为天然气水合物勘探提供可靠的基础资料。常用的地震反演技术有Jason、Strata、Seislog和ISIS等,其中Jason反演技术在含天然气水合物层预测中因其分辨率高而得到广泛推崇,它主要由有井约束和无井约束两种 *** 组成(廖曦等,2002)。

速度异常是判断天然气水合物是否赋存的重要条件之一。结合BSR(Bottom Simulating Reflector)特征、波形极性特征、振幅特征以及AVO特征等目前已成为判断是否存在天然气水合物层主要手段(史斗等,1999)。大量的测试数据显示:水合物的速度与冰的速度较为接近,而比水高。与含水或含游离气沉积层相比,含水合物沉积层的密度降低,声波速率增大,含水合物层的地层速度往往比一般的地层速度高,含水合物沉积层的下部由于充填了水或气,而使水合物底界面出现速度负异常。因此,地层中速度反转是水合物赋存的一个地球物理标志。含水合物地层的声波速度与水合物的含量有关,水合物含量越高,其声波速度越高。从速度方面看,BSR是上覆高速的含水合物地层与下伏较低速的含水层或含气层之间的分界面。通常,海洋中浅层沉积层的地震纵波速度为1600~1800m/s,如果存在水合物,地震波速度将大幅提高,可达1850~2500m/s,如果水合物层下面为游离气层,则地震波速度可以骤减200~500m/s。因此,在速度剖面上,水合物层的层速度变化趋势呈典型的三段式,即上下小、中间大的异常特征(张光学等,2000)。西伯利亚麦索雅哈气田的资料表明,在原为含水砂层内形成水合物之后,其纵波的传播速度会从1850m/s提高到2700m/s;而在胶结砂岩层,这种速度会从3000m/s提高到3500m/s。深海钻探计划的570站位的测井结果表明,由含水砂岩层进入含水合物砂岩层时,密度由1.79g/cm3降低到1.19g/cm3,声波传播速度从1700m/s提高到3600m/s,且电导率剧烈下降。

Cascadia海域ODP889站位的VSP测井资料反映水合物底界为强烈的负速度界面,速度从水合物沉积物层的1900m/s陡降到含游离气层的1580m/s,由于VSP测井为地震测井,受钻井因素的影响较少,因此认为VSP测井真实地反映了水合物沉积层底界的速度变化(陈建文等,2004)。

国土资源部广州海洋地质调查局在2001~2004年在南海北部陆坡进行10000多公里的天然气水合物高分辨地震调查。本研究利用Jason反演技术,通过对南海北部陆坡区的地震速度资料的精细分析,在已圈定BSR分布范围的基础上研究陆坡区各沉积层的速度特征,最后对速度值与水合物的关系进行了分析和探讨。

2 *** 原理

纯天然气水合物的密度(0.9g/cm3)和海水密度相近,而游离气的含量又十分有限,这就决定了产生BSR的波阻抗差主要由速度造成。速度反演技术的特点是在无井约束时,以地震解释的层位为控制,对所有的地震同相轴来进行外推内插来完成波阻抗反演,这样就克服了地震分辨率的限制,更佳的逼近了测井分辨率,同时又使反演结果保持了较好的横向连续性。速度反演技术的主要原理是:①通过更大的似然反褶积求得一个具有稀疏特性的反射系数系列;②通过更大的似然反演导出波阻抗;③通过波阻抗计算速度。该 *** 的主要优点是能获得宽频带的反射系数,是一种基于模型的反演,具有多种建模 *** ,对所建模型进行比较分析,并使地质模型更趋合理,反演结果更加真实可靠(郝银全等,2004)。

波阻抗反演 *** 的出发点是认为地下的反射系数是稀疏分布的,即地层反射系数由一系列叠加于高斯背景上的强轴组成。具体反演是从地震道中,根据稀疏的原则抽取反射系数,与子波褶积生成合成地震记录,利用合成地震记录与原始地震道的残差修改反射系数,得到新的反射系数序列,然后再求得波阻抗。其具体步骤是:

假设地层的反射系数是较大的反射界面的反射和具有高斯背景的小反射叠加组合而成的,根据这种假设导出一个最小的目标函数(安鸿伟等,2002):

南海地质研究.2006

式中:R(K)为之一个采样点的反射系数,M为反射层数,L为采样总数,N为噪音变量的平方根,λ为给定反射系数的似然值。

更大的似然反演就是通过转换反射系数导出宽带波阻抗的过程。如果从更大的似然反褶积中求得的反射系数式R(t),则波阻抗:

Z(i)=z(i-1)×(1+R(i))/R(1-i) (2)

利用波阻抗和速度的关系式:

v=Z(i)/ρ (3)

即可得到速度值。其中,ρ为地层密度,可从区域测井资料结合该测线重力资料反演求取。

在上述过程中为了得到可靠的反射系数估算值,可以单独输入波阻抗信息作为约束条件,以求得最合理的速度模型。一方面,速度反演结果是一个宽频带的反射序列和波阻抗及速度数据,同时加入了低频分量,使反演结果更能正确反映速度变化规律;另一方面,它有多种质量控制 *** ,具体表现为监控子波的选取、同相轴的连续追踪、反演结果准确性的判断和提供多种交汇显示的相关性分析。所以利用速度反演可对地震剖面上任一相位进行速度反演,在每一个CDP点都可得到任一个同相轴速度数据,并利用二维的反射波的速度层析成像反演 *** 得到高度连续的速度剖面,如果地震测线足够密,还可利用三维速度反演得到速度体图像。

3 实现过程

3.1 初始模型的确立

在地质规律的指导下,利用地震和测井资料开展沉积特征分析和沉积旋回划分;建立岩石-电性关系,进行砂层组和单砂层对比;在地震剖面上提取各含油砂层组反射波属性,建立地震属与矿体的关系,实现地震-测井综合预测矿体平面分布厚度,开展层间矿体组外推预测;建立初始速度场;在地震属性约束下开展地震反演,反演层间小层矿体厚度。细分层反演层位的标定正确与否直接影响反演结果的精度。因此,在反演过程中对子波提取、能谱特点、信噪比、频谱及反射系数的研究至关重要(闫奎邦等,2004)。技术路线流程如图1所示:

3.2 初始速度场的获得

初始速度场的获得首先要对速度谱进行解释,速度谱的解释和取值是否合理,将直接影响均方根速度的计算精度。具体步骤如下:

1)速度谱的解释先从地质条件简单、反射层质量好、能量团强、干扰少的剖面段开始,绘制叠加速度-反射时间曲线,并逐渐向外扩展;

2)结合地震剖面的反射特征,判断速度极值点是否正确,并选择读取能量团更大的极值点。排除干扰波能量团,从而求得有效波的叠加速度;

3)对相邻速度谱进行比较,通过比较速度谱曲线的形状、相同反射层的速度极值等 *** 予以检查和修改。

4)每隔40个CDP拾取一组数据,利用地震剖面上的反射倾角数据对它们进行校正,便可得到均方根速度(梁劲等,2006)。

图1 速度反演技术线路流程图

Fig.1 The flow chart of the velocity inversion of technical route

3.3 子波的提取

子波提取时,要使能量集中于子波的主瓣,与地震子波形态吻合。如果所提子波近于零相位,则从波峰向两侧能量衰减较快,波峰两侧波形对称;在子波的能谱特征分析,要使能量都集中在地震波的主频范围内;有井资料时,要对井资料都作了子波与地震波自动关联质量控制。保证子波能谱与地震波能谱相吻合,是反演中较为重要的一方面,子波能谱的峰值与地震波主频的能谱峰值相吻合。首先了解合成记录与地震记录之间的偏差。通过合成记录与地震记录之间的偏差分析,对Jason反射系数偏差、能谱偏差进行进一步的校正,使合成记录与地震记录之间的偏差减小。然后通过反射系数与地震资料之间偏差分析,采取相应的手段校正,使地层与合成记录反射系数相吻合。再进行信噪比分析,使反演处理后的信噪比得到更大限度的提高。通过一系列质量控制手段,使各油层合成记录与地震记录的标定精度得到了较大的提高。

关于速度反演可信程度,不能完全由反演 *** 确定,关键在于获取地震记录的质量和反演前处理流程的振幅保真度。另一个影响因素是数值模拟结果应当是比较准确的,这与计算 *** 有关,也与子波拾取和地质构造模型有关。至于反演结果的灵敏度,主要由拟合误差值和收敛速度来判断。如果给定的初始模型正确,即与实际地质结构一致,则拟合的误差较小且收敛速度快。本文工作由于受实际情况限制,没有实际的测井资料验证,因此反演所得速度的准确性和精度会受到一定程度的影响。

4 速度剖面特征

运用多种特殊地震成像综合分析,是天然气水合物地震资料解释的关键技术。目前一般采用识别BSR、振幅空白带、波形极性反转、速度异常、波阻抗面貌和AVO等天然气水合物地震相应特征来综合分析沉积物中是否含有水合物。高精度的层速度分析可帮助判定水合物的富集层位,速度及振幅异常结构是水合物与下伏游离气共同作用形成的特殊影像,剖面上表现为“上隆下坳”结构,多层叠合构成一明显的垂向“亮斑”这一特殊成像结构在未变形的水合物盆地内较适用于寻找水合物矿点,并可据此定量估算水合物盆地内水合物的数量,分析BSR上下的详细速度结构,是水合物地震资料综合解释的重要手段(张光学等,2003)。

图2 南海北部陆坡测线A道积分剖面

Fig.2 Trace integration profile of the line A in north slope of the South China Sea

图2是南海北部陆坡测线A的地震反射道积分剖面,从图中可以看出,该剖面中部及右下角距海底大约350ms处出现一强振幅反射波,大致与海底反射波平行,与地层斜交,BSR特征明显。在波形极性方面,海底反射波和BSR都表现为成对出现的强振幅双峰波形特征,海底反射波表现为蓝红蓝特征,而BSR表现为红蓝红特征,这表明相对于海底,BSR显示出负极性反射同相轴,即所谓的极性反转(与海底反射相反)。反射波的极性是由反射界面的反射系数决定的,而反射系数则与界面两侧的波阻抗差有关。实际上,海底和BSR都是一个强波阻抗面,海底是海水和表层沉积物的分界面,上部为低速层,下部为相对高速层,反射系数为正值;BSR是含水合物层与下部地层(或含气层)的分界面,上部为高速层(水合物成矿带是相对高速体),下部为相对低速层(如含游离气,则速度更低),反射系数为负值,因此造成了BSR和海底反射波的极性相反现象(沙志彬等,2003)。图3是用速度反演法反演出来的纵波速度剖面,该速度剖面明显显示出一近似平行于海底的相对高速地质体,其位置恰好在BSR上方。高速地质体的纵波速度大约在2000~2400m/s,其上面的低速层的纵波速度大约在1500~1800m/s,而下面的低速层的纵波速度大约在1500~1900m/s,没有明显的游离气存在特征,但根据其高速地质体特征、BSR以及波形极性反转分析,可以认为南海北部陆坡测线A的相对高速地质体极可能是水合物成矿带。

图3 用速度反演法计算的南海北部陆坡测线A纵波速度剖面

Fig.3 P velocity profile of the line A in north slope of the South China Sea computed by velocity inversion

由图3可见,水合物成矿带内部速度是变化的,表明水合物分布不均匀,呈平行于海底的带状分布,中心速度更高,由中心到边缘速度逐渐降低。海底以下有3个近似平行海底的低速和高速带:①海底与高速体之间的相对低速带,为水饱和带;②水合物成矿带;③水合物成矿带下的低速带。水合物成矿带下面的低速带在速度剖面上没有明显的低速特征,由此推断水合物成矿带下可能不含游离气,或者是气体的饱和度很低。

5 结论

水合物的生成除了需要一定的温度和压力条件外,还需要大量的碳氢气体和充足的水。这就需要地层具有较高的孔隙度和渗透率。未固结沉积岩的孔隙度很高,渗透率大,具备水合物生成的物理条件。具备这种特征的未固结沉积岩的地震波速度较低,而含水合物地层的地震波速度增大。这就形成了水合物成矿带作为低速背景中的高速地质体特征。另外,水合物的生成受温度和压力控制,一般情况,等温面和等压面近似平行于海底,因此低速背景中近似平行于海底的相对高速地质体是水合物成矿带的特征(刘学伟等,2003)。

通过对南海北部陆坡A测线纵波速度的计算,并且结合BSR和振幅空白带识别以及波形极性反转等多种特殊地震成像进行综合分析,我们可以进一步了解水合物成矿带的速度特征:揭示水合物成矿带的高速异常一般呈平行于海底的带状分布,在高速异常的内部,速度也是不断变化的,一般在异常体的中心速度更高,由中心到边缘速度逐渐降低,该现象反映在水合物矿带内部,水合物分布并不均匀,水合物饱和度由矿体中心向边缘逐渐降低。分析BSR上下的详细速度结构,是水合物地震资料综合解释的重要手段。高精度速度分析可帮助判定水合物的富集层位,较适用于寻找水合物矿点,并可据此估算水合物资源量。

参考文献

安鸿伟,李正文,李仁甫,等.2002.稀疏脉冲波阻抗反演在XY油田开发中的应用.石油物探,41(1):56~60

陈建文,闫桂京,吴志强,等.2004.天然气水合物的地球物理识别标志.海洋地质动态,6:9~12

郝银全,潘懋,李忠权.2004.Jason多井约束反演技术在油气储层预测中的应用.成都理工大学学报,31(3):297~300

梁劲,王宏斌,郭依群.2006.南海北部陆坡天然气水合物的地震速度研究[J].现代地质,20(1):123~129

廖曦,马波,沈浩,等.2002.应用Jason软件进行砂体及含气性预测.天然气勘探与开发,25(3):34~42

刘学伟,李敏锋,张聿文,等.2005.天然气水合物地震响应研究——中国南海HD152测线应用实例.现代地质,19(1):33~38

沙志彬,杨木壮,梁金强,等.2003.BSR的反射波特征及其对天然气水合物识别的应用.南海地质研究,15(1):55~61

史斗,郑军卫.1999.世界天然气水合物研究开发现状和前景.地球科学进展,14:330~339

王宏斌,梁劲,龚跃华,等.2005.基于天然气水合物地震数据计算南海北部陆坡海底热流.现代地质,19(1):67~73

闫奎邦,李冬梅,吴小泉.2004.Jason反演技术在岩性识别中的应用.石油物探,43(1):54~58

张光学,黄永样,陈邦彦,主编.2003.海域天然气水合物地震学.北京:海洋出版社

张光学,文鹏飞.2000.南海甲烷水合物的地震特征研究,首届广东青年科学家论坛论文集,中国科学技术出版社

The Application of Jason Inversion Technology in Velocity Analysis of Gas hydrate

Liang Jin1 Wang Hongbin1,2 Liang Jinqiang1

(1.Guangzhou Marine Geological Survey,Guangzhou,5107602.China University of Geosciences(Beijing),Beijing,100083)

Abstract:The P velocity of A sei *** ic profile in the north slope of the South China Sea were calculated by Jason inversion method.The velocity characterostic of the gas hydrate bed was researched in detail based on the calculated result and the information of gas hydrate existing including BSR,amplitude blanking and polarity reversion of the waveform.Research shows that:The abnormity of higher velocity in the background of lower velocity is an important characteristic of gas hydrate existing;The abnormity of higher velocity which distribute as a belt usually parallel to the seafloor;The velocity changes gradually at the inner of the abnormity of higher velocity with the highest velocity at the center of the abnormity whereas the lowest velocity at the margin of it,which suggests that the saturation of gas hydrate decreases gradually from the center to the margin.The result that mentioned above suggest that high resolution velocity *** ysis not only help to search the hydrate spot but also help to estimate the rich layer of gas hydrate.

Key Words:Jason Inversion Technology Gas hydrate Velocity Analysis

jason 是什么意思?

jason 的意思是:由英文中[J]uly、[A]ugust、[S]eptember、[O]ctober、[N]ovember各个单词的首字母组成的英文名字。中文音译:杰森。名字含义:医治者,治愈着,有治愈伤口的力量。

1、这个英文名来源于古希腊神话--金羊毛,其中最终历尽艰辛最终获得金羊毛的王子就是伊阿宋Jason。

Jason中的J代表jewel宝石,a则代表aggressive有进取心的、s则代表star星星、o则代表optimist乐观主义者,n则代表natural天生的,名字象征着积极阳光、乐观向上之意。

2、Jason Zhang 是内地流行男歌手张杰的英文名,张杰出生于四川成都,毕业于四川师范大学,开创了音乐厂牌“行星文化”。2004年参加首届我型我秀,获得全国总决赛冠军出道。2007年参加快乐男声,获得全国总决赛亚军。

3、Jason Mraz 是著名的歌曲《I'm Yours》的演唱者,杰森·玛耶兹(Jason Mraz)出生在美国弗吉尼亚州列治文,2002年,Jason Mraz获得唱片合约,发行首张专辑《Waiting For My Rocket To Come》,获得全美热门潜力榜亚军。

4、Jason还是一个地学平台,即为用户提供丰富的从油气勘探、开发到生产阶段,将地震、测井和地质信息有机结合,进行反演、模拟和预测不同阶段储层岩石物性和流体变化的综合性研究工具。

扩展资料:

Jason模块的技术说明:

1、Eplus

Jason的交互式地震资料解释工具Eplus提供了丰富的工作环境,具有如下功能:三维数据体浏览和地质体检测、剖面浏览和解释、成图和计算、井曲线编辑和井 - 震标定、交会图和直方图工具、层间和层面的属性提取等。

2、FunctionMod

FunctionMod应用于Jason工区中所有数据文件的模型管理和运算,而且在图形浏览模块MapView中具有更加复杂的功能。FunctionMod也可以生成复杂的函数,还能够嵌入其它计算过程中的结果,以及分解成一个或多个子函数。

3、Wavelets

计算的地震子波形状对反演结果和后续评价的油藏品质有严重的影响,绝大多数地震反演技术假定:观测到的地震数据可以用具有带宽限制的反射系数序列与地震子波褶积来模拟得到,反演过程就是首先估算地震子波。

参考资料:

百度百科—Jason

如何使用 *** ON格式 POST数据到服务器

1. *** ON的数据格式

a) 按照最简单的形式,可以用下面这样的 *** ON 表示名称/值对:

{ "firstName": "Brett" }

b) 可以创建包含多个名称/值对的记录,比如:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }

c) 可以创建值的数组

{ "people": [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }

]}

d) 当然,可以使用相同的语法表示多个值(每个值包含多个记录):

{ "programmers": [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }

],

"authors": [

{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },

{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }

],

"musicians": [

{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }

]

}

注意,在不同的主条目(programmers、authors 和 musicians)之间,记录中实际的名称/值对可以不一样。 *** ON 是完全动态的,允许在 *** ON 结构的中间改变表示数据的方式。

2. 在 JavaScript 中使用 *** ON

*** ON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 *** ON 数据不需要任何特殊的 API 或工具包。

2.1 将 *** ON 数据赋值给变量

例如,可以创建一个新的 JavaScript 变量,然后将 *** ON 格式的数据字符串直接赋值给它:

var people =

{ "programmers": [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }

],

"authors": [

{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },

{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }

],

"musicians": [

{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }

]

}

2.2 访问数据

将这个数组放进 JavaScript 变量之后,就可以很轻松地访问它。实际上,只需用点号表示法来表示数组元素。所以,要想访问 programmers 列表的之一个条目的姓氏,只需在JavaScript 中使用下面这样的代码:

people.programmers[0].lastName;

注意,数组索引是从零开始的。

2.3 修改 *** ON 数据

正如访问数据,可以按照同样的方式修改数据:

people.musicians[1].lastName = "Rachmaninov";

2.4 转换回字符串

a) 在 JavaScript 中这种转换也很简单:

String new *** ONtext = people.to *** ONString();

b) 可以将任何 JavaScript 对象转换为 *** ON 文本。并非只能处理原来用 *** ON 字符串赋值的变量。为了对名为 myObject 的对象进行转换,只需执行相同形式的命令:

String myObjectIn *** ON = myObject.to *** ONString();

说明:将转换回的字符串作为Ajax调用的字符串,完成异步传输。

小结:如果要处理大量 JavaScript 对象,那么 *** ON 几乎肯定是一个好选择,这样就可以轻松地将数据转换为可以在请求中发送给服务器端程序的格式。

3. 服务器端的 *** ON

3.1 将 *** ON 发给服务器

a) 通过 GET 以名称/值对发送 *** ON

在 *** ON 数据中会有空格和各种字符,Web 浏览器往往要尝试对其继续编译。要确保这些字符不会在服务器上(或者在将数据发送给服务器的过程中)引起混乱,需要在JavaScript的escape()函数中做如下添加:

var url = "organizePeople.php?people=" + escape(people.to *** ONString());

request.open("GET", url, true);

request.onreadystatechange = updatePage;

request.send(null);

b) 利用 POST 请求发送 *** ON 数据

当决定使用 POST 请求将 *** ON 数据发送给服务器时,并不需要对代码进行大量更改,如下所示:

var url = "organizePeople.php?timeStamp=" + new Date().getTime();

request.open("POST", url, true);

request.onreadystatechange = updatePage;

request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

request.send(people.to *** ONString());

注意:赋值时格式必须是var msg=eval('(' + req.responseText + ')');

3.2 在服务器上解释 *** ON

a) 处理 *** ON 的两步骤。

针对编写服务器端程序所用的语言,找到相应的 *** ON 解析器/工具箱/帮助器 API。

使用 *** ON 解析器/工具箱/帮助器 API 取得来自客户机的请求数据并将数据转变成脚本能理解的东西。

b) 寻找 *** ON 解析器

寻找 *** ON 解析器或工具箱更好的资源是 *** ON 站点。如果使用的是 Java servlet,json.org 上的 org.json 包就是个不错的选择。在这种情况下,可以从 *** ON Web 站点下载 json.zip 并将其中包含的源文件添加到项目构建目录。编译完这些文件后,一切就就绪了。对于所支持的其他语言,同样可以使用相同的步骤;使用何种语言取决于您对该语言的精通程度,更好使用您所熟悉的语言。

c) 使用 *** ON 解析器

一旦获得了程序可用的资源,剩下的事就是找到合适的 *** 进行调用。如果在 servlet 中使用的是 org.json 包,则会使用如下代码:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

StringBuffer jb = new StringBuffer();

String line = null;

try {

BufferedReader reader = request.getReader();

while ((line = reader.readLine()) != null)

jb.append(line);

} catch (Exception e) { //report an error }

try {

*** ONObject jsonObject = new *** ONObject(jb.toString());

} catch (ParseException e) {

// crash and burn

throw new IOException("Error parsing *** ON request string");

}

// Work with the data using methods like...

// int someInt = jsonObject.getInt("intParamName");

// String someString = jsonObject.getString("stringParamName");

// *** ONObject nestedObj = jsonObject.get *** ONObject("nestedObjName");

// *** ONArray arr = jsonObject.get *** ONArray("arrayParamName");

// etc...

}