JSON文件依資料特性,可以組織成巢狀的、階層式的資料呈現,例如底下資料是Google地圖所呈現的資料:
{ "results" : [ { "address_components" : [ { "long_name" : "331", "short_name" : "331", "types" : [ "street_number" ] }, { "long_name" : "復興北路", "short_name" : "復興北路", "types" : [ "route" ] }, { "long_name" : "民有里", "short_name" : "民有里", "types" : [ "administrative_area_level_4", "political" ] }, { "long_name" : "松山區", "short_name" : "松山區", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "台北市", "short_name" : "台北市", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "台灣", "short_name" : "TW", "types" : [ "country", "political" ] }, { "long_name" : "105", "short_name" : "105", "types" : [ "postal_code" ] } ], "formatted_address" : "105台灣台北市松山區復興北路331號", "geometry" : { "location" : { "lat" : 25.0596758, "lng" : 121.5444275 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 25.0610247802915, "lng" : 121.5457764802915 }, "southwest" : { "lat" : 25.0583268197085, "lng" : 121.5430785197085 } } }, "place_id" : "ChIJLUebXOSrQjQRuotJJCxEw_4", "types" : [ "street_address" ] }, { "address_components" : [ { "long_name" : "臺北", "short_name" : "臺北", "types" : [ "colloquial_area", "locality", "political" ] }, { "long_name" : "台灣", "short_name" : "TW", "types" : [ "country", "political" ] } ], "formatted_address" : "台灣臺北", "geometry" : { "bounds" : { "northeast" : { "lat" : 25.2443731, "lng" : 121.7300824 }, "southwest" : { "lat" : 24.7900797, "lng" : 121.2826735 } }, "location" : { "lat" : 25.0329694, "lng" : 121.5654177 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 25.2443731, "lng" : 121.7300824 }, "southwest" : { "lat" : 24.7900797, "lng" : 121.2826735 } } }, "place_id" : "ChIJmQrivHKsQjQR4MIK3c41aj8", "types" : [ "colloquial_area", "locality", "political" ] }, { "address_components" : [ { "long_name" : "民有里", "short_name" : "民有里", "types" : [ "administrative_area_level_4", "political" ] }, { "long_name" : "松山區", "short_name" : "松山區", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "台北市", "short_name" : "台北市", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "台灣", "short_name" : "TW", "types" : [ "country", "political" ] } ], "formatted_address" : "台灣台北市松山區民有里", "geometry" : { "bounds" : { "northeast" : { "lat" : 25.0622186, "lng" : 121.5507804 }, "southwest" : { "lat" : 25.0577548, "lng" : 121.5441643 } }, "location" : { "lat" : 25.0601237, "lng" : 121.5477044 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 25.0622186, "lng" : 121.5507804 }, "southwest" : { "lat" : 25.0577548, "lng" : 121.5441643 } } }, "place_id" : "ChIJY-RkceWrQjQRf_e1uF5LwyA", "types" : [ "administrative_area_level_4", "political" ] }, { "address_components" : [ { "long_name" : "松山區", "short_name" : "松山區", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "台北市", "short_name" : "台北市", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "台灣", "short_name" : "TW", "types" : [ "country", "political" ] }, { "long_name" : "105", "short_name" : "105", "types" : [ "postal_code" ] } ], "formatted_address" : "105台灣台北市松山區", "geometry" : { "bounds" : { "northeast" : { "lat" : 25.0759635, "lng" : 121.5800758 }, "southwest" : { "lat" : 25.0443819, "lng" : 121.5385388 } }, "location" : { "lat" : 25.0552958, "lng" : 121.5541264 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 25.0759635, "lng" : 121.5800758 }, "southwest" : { "lat" : 25.0443819, "lng" : 121.5385388 } } }, "place_id" : "ChIJkRGtsfKrQjQRYWPBFx-XsMA", "types" : [ "administrative_area_level_3", "political" ] }, { "address_components" : [ { "long_name" : "105", "short_name" : "105", "types" : [ "postal_code" ] }, { "long_name" : "松山區", "short_name" : "松山區", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "台北市", "short_name" : "台北市", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "台灣", "short_name" : "TW", "types" : [ "country", "political" ] } ], "formatted_address" : "105台灣台北市松山區", "geometry" : { "bounds" : { "northeast" : { "lat" : 25.0759635, "lng" : 121.5800758 }, "southwest" : { "lat" : 25.0443819, "lng" : 121.5385388 } }, "location" : { "lat" : 25.0552958, "lng" : 121.5541264 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 25.0759635, "lng" : 121.5800758 }, "southwest" : { "lat" : 25.0443819, "lng" : 121.5385388 } } }, "place_id" : "ChIJ7WbTsfKrQjQRvw4VhBEwgnk", "types" : [ "postal_code" ] }, { "address_components" : [ { "long_name" : "台北市", "short_name" : "台北市", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "台灣", "short_name" : "TW", "types" : [ "country", "political" ] } ], "formatted_address" : "台灣台北市", "geometry" : { "bounds" : { "northeast" : { "lat" : 25.2103038, "lng" : 121.6659421 }, "southwest" : { "lat" : 24.9605084, "lng" : 121.4570603 } }, "location" : { "lat" : 25.0329636, "lng" : 121.5654268 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 25.2103038, "lng" : 121.6659421 }, "southwest" : { "lat" : 24.9605084, "lng" : 121.4570603 } } }, "place_id" : "ChIJi73bYWusQjQRgqQGXK260bw", "types" : [ "administrative_area_level_1", "political" ] }, { "address_components" : [ { "long_name" : "台灣", "short_name" : "TW", "types" : [ "country", "political" ] } ], "formatted_address" : "台灣", "geometry" : { "bounds" : { "northeast" : { "lat" : 26.3836884, "lng" : 123.4934282 }, "southwest" : { "lat" : 20.5862202, "lng" : 116.7118602 } }, "location" : { "lat" : 23.69781, "lng" : 120.960515 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 25.2996232, "lng" : 122.0071612 }, "southwest" : { "lat" : 21.8066129, "lng" : 120.0350435 } } }, "place_id" : "ChIJL1cHXAbzbjQRaVScvwTwEec", "types" : [ "country", "political" ] } ], "status" : "OK" }
unit Unit2; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, JSON, Vcl.StdCtrls, idHttp; type TForm2 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); var s: String; HTTP: TIdHTTP; jso:TJSONObject; jv:TJSONValue; jstr:string;//要轉換的json字串 begin HTTP := TIdHTTP.Create; //s:='http://192.192.246.169/'; s := 'http://maps.google.com/maps/api/geocode/json?latlng=25.0596967%2C121.5443056&sensor=true&language=zh-TW'; memo1.Lines.Text := HTTP.Get(s); jso:=nil; //jstr:='{"name":"陳富國","Interest":"閱讀"}'; jstr := memo1.Lines.Text; try jso:=TJSONObject.Create; jso:=TJSONObject.ParseJSONValue(tencoding.utf8.getbytes(jstr),0) as tjsonobject; jv:=jso.get('status').JsonValue; ShowMessage('Status = ' + jv.Value); finally jso.Free; end; end; end.