留学生辅导 RFC 4627 (July 2006) authored by .

JSON – JavaScript Object Notation
Some of the slides taken from / Paypal Inc.
Copyright 2008-2022 E. Horowitz, M. Papa 1

Copyright By PowCoder代写 加微信 powcoder

What is JSON
• JSON, short for JavaScript Object Notation, is a lightweight data interchange format.
– It is a text-based, human-readable format for representing simple data structures and associative arrays (called objects).
• The JSON format is specified in RFC 4627 (July 2006) authored by .
– https://tools.ietf.org/rfc/rfc4627.txt
– The official MIME type for JSON is application/json. The JSON file extension is
• The JSON format is often used for transmitting structured data over a network connection in a process called serialization.
– Its main application is in Ajax web application programming, where it serves as an alternative to the use of the XML format.
• Code for parsing and generating JSON data is readily available for a large variety of programming languages. The www.json.org website provides a comprehensive listing of existing JSON bindings, organized by language.
Copyright 2008-2022 E. Horowitz, M. Papa 2

Brief History
• JSON was based on a subset of the JavaScript programming language (specifically, Standard ECMA-262 – now in its 12th Edition)
– however, it is a language-independent data format.
– For the complete specification see https://www.ecma-international.org/publications/standards/Ecma-262.htm
The JavaScript ECMA standard is based upon Netscape’s JavaScript and Microsoft’s Jscript
• was the original developer of JSON while he was at State Software, Inc. He is now Senior JavaScript Architect at Paypal
• http://www.json.org/, is a website devoted to JSON discussions and includes many JSON parsers
Copyright 2008-2022 E. Horowitz, M. Papa 3

How to use the JSON format • A JSON file allows one to load data from the server or to send data to it.
• Working with JSON involves three steps: (i) the browser processing, (ii) the server processing, and (iii) the data exchange between them.
1. Client side (browser)
• The content of a JSON file (or stream), or the definition of JSON data is assigned to a variable, and this variable becomes an object of the program.
2. Server side
• a JSON file (or stream) on the server can be operated upon by various programming languages, including PHP and Java thanks to parsers that process the file and may even convert it into classes and attributes of the language.
3. Data exchange
• Loading a JSON file from the server may be accomplished in JavaScript in several ways: – directly including the file into the HTML page, as a JavaScript .json external file.
– loading by a JavaScript command – using XMLHttpRequest()
• To convert JSON into an object, it can be passed to the JavaScript eval() function.
• Sending the file to the server may be accomplished by XMLHttpRequest(). The file is sent
as a text file and processed by the parser of the programming language that uses it.
Copyright 2008-2022 E. Horowitz, M. Papa 4

JSON and XMLHttpRequest Example
• XMLHttpRequest will be covered in more detail in the AJAX lecture
• The XMLHttpRequest code:
var req = new XMLHttpRequest();
req.open(“GET”, “file.json”, true); // “asynchronous” operation req.onreadystatechange = myCode; // the callback req.send(null);
• The JavaScript callback: eval() parses JSON, creates an object and assigns it to variable doc function myCode() {
if (req.readyState == 4) { if (req.Status == 200) {
var doc = eval(‘(‘ + req.responseText + ‘)’); }
• Using the data:
var menuName = doc.getElementById(‘menu’); // finding a field menu doc.menu.value = “my name is”; // assigning a value to the field
• How to access data:
doc.commands[0].title // read value of the “title” field in the array doc.commands[0].action // read value of the “action” field in the array
Copyright 2008-2022 E. Horowitz, M. Papa 5

JavaScript eval()
• The JavaScript eval() is a function property of the Global Object, and evaluates a string
and executes it as if it was JavaScript code, e.g.

• produces the output 200
• Because JSON-formatted text is also syntactically legal JavaScript code, an easy way for a JavaScript program to parse JSON-formatted data is to use the built-in JavaScript eval() function
• the JavaScript interpreter itself is used to execute the JSON data to produce native JavaScript objects.
• The eval() technique is subject to security vulnerabilities if the data and the entire JavaScript environment is not within the control of a single trusted source; See:
• https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval Copyright 2008-2022 E. Horowitz, M. Papa 6

JSON Basic Data Types
• String(double-quotedunicodewithbackslash escaping)
• Numbers(integer,real,orfloatingpoint)
• Booleans(trueandfalse)
• Object(collectionofkey:valuepairs,comma- separated and enclosed in curly brackets)
• Array(anorderedsequenceofvalues,comma- separated and enclosed in square brackets)
• Null(avaluethatisn’tanything)
Copyright 2008-2022 E. Horowitz, M. Papa 7

• Sequenceof0ormoreUnicodecharacters • Noseparatecharactertype
– A character is represented as a string with a length of 1
• Wrappedin”doublequotes” • Backslashescapement
Copyright 2008-2022 E. Horowitz, M. Papa 8

• Objectsareunorderedcontainersofkey/valuepairs
• Objectsarewrappedin{}
• ,separateskey/valuepairs
• :separateskeysandvalues
• Keysarestrings(unlikeinJavaScript)
• ValuesareJSONvalues
• Canbeusedtorepresentstruct,record,hashtable, object
Copyright 2008-2022 E. Horowitz, M. Papa 9

Example Object
{“name”:” . Nimble”,”at large”:
true,”grade”:”A”,”level”:3,
“format”:{“type”:”rect”,”width”:1920,
“height”:1080,”interlace”:false,
“framerate”:24}}
Copyright 2008-2022 E. Horowitz, M. Papa 10

Example Object Formatted
“name”: ” . Nimble”, “at large”: true,
“grade”: “A”,
“level”: 3,
“format”: {
“type”: “rect”,
“width”: 1920,
“height”: 1080,
“interlace”: false,
“framerate”: 24
Copyright 2008-2022 E. Horowitz, M. Papa 11

• Arraysareorderedsequencesofvalues
• Arrays are wrapped in [ ] (square brackets)
• ,separatesvalues
• JSONdoesnottalkaboutindexing.
– An implementation can start array indexing at 0 or 1.
Copyright 2008-2022 E. Horowitz, M. Papa 12

Two Examples of JSON Arrays
• One dimensional
[“Sunday”, “Monday”, “Tuesday”, “Wednesday”,
“Thursday”, “Friday”, “Saturday”]
• Two dimensional [
[0, -1, 0],
[1, 0, 0],
Copyright 2008-2022 E. Horowitz, M. Papa 13

Arrays vs Objects
• Use objects when the key names are arbitrary strings
• Use arrays when the key names are sequential integers
Copyright 2008-2022 E. Horowitz, M. Papa 14

JSON is Not XML JSON XML
• Booleans
• attribute
• Attribute string • content
• Entities
• Declarations
• Stylesheets
• Comments
• namespace
Copyright 2008-2022 E. Horowitz, M. Papa 15

JSON vs. XML Example
XML Equivalent

File


New</value> <action>CreateDoc</action><br /> </item> <item><br /> <title>Open</value><br /> <action>OpenDoc</action> </item><br /> <title>Close</value> <action>CloseDoc</action><br /> </item> </commands><br /> “menu”: “File”, “commands”: [<br /> “title”: “New”, “action”:”CreateDoc”<br /> “title”: “Open”, “action”: “OpenDoc”<br /> “title”: “Close”, “action”: “CloseDoc”<br /> Copyright 2008-2022 E. Horowitz, M. Papa 16</p> <p> Rules for JSON Parsers<br /> • A JSON decoder must accept all well-formed JSON text<br /> • A JSON decoder may also accept non-JSON text<br /> • A JSON encoder must only produce well-formed JSON text<br /> • A list of decoders for JSON can be found at http://www.json.org/<br /> JSON parsers for programming languages include C, C++,<br /> C#, Java, JavaScript, Perl, PHP<br /> Copyright 2008-2022 E. Horowitz, M. Papa 17</p> <p> Same Origin Policy<br /> • Same origin policy is a security feature that browsers apply to client-side scripts<br /> • It prevents a document or script loaded from one “origin” from getting or setting properties of a document from a different “origin”<br /> – Rationale: the browser should not trust content loaded from arbitrary websites • Given the URL: http://www.example.com/dir/page.html<br /> http://www.example.com/dir2/other.json<br /> http://www.example.com/dir/inner/other.json<br /> http://www.example.com:81/dir2/other.json<br /> https://www.example.com/dir2/other.json<br /> http://en.example.com/dir2/other.json http://example.com/dir2/other.json<br /> Success Success Failure Failure<br /> Same protocol and host<br /> Same protocol and host<br /> Same protocol and host but different port<br /> Different protocol<br /> Different host<br /> Different host<br /> Copyright 2008-2022 E. Horowitz, M. Papa 18</p> <p> JSON: The Cross-Domain Hack<br /> • JSON and the <script> tag provide a way to get around the Same Origin Policy <script src=http://otherdomain.com/data.js> • The src attribute of a script tag can be set to a URL from any server, and every browser will go and retrieve it, and read it into your page • So, a script tag can be set to point at a URL on another server with JSON data in it, and that JSON will become a global variable in the webpage • So JSON can be used to grab data from other servers, without the use of a server-side proxy • Available in HTML since 1994 C o p 2 y 0 r 0 i g 8 h C t o 2 p 0 y 0 r i 8 g - h 2 t 0 E 2 . 2 H E o . r H o o w r o i t wz , i t M z , . MP a . p P a a p a 1 1 9 9</p> <p> JSON and Dynamic Script Tag “Hack” • Using JSON it is possible to get around the limitation that data can only come from a single domain (bypasses cross-domoan) • To do this one needs to – to find a website that returns JSON data, and – A JavaScript program that contains a JSONScriptRequest class that creates a dynamic <script> tag and its contents • The implementation of this class can be found at the class website: http://csci571.com/examples/js/jsr_class.js • The most important line in the script (the "hack") is the following one: this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE); which sets the src attribute of the <script> tag to a new URL Copyright 2008-2022 E. Horowitz, M. Papa 20</p> <p> Source Code for jsr_class.js // Constructor -- pass a REST request URL to the constructor function JSONscriptRequest(fullUrl) { // REST request path this.fullUrl = fullUrl; // Keep IE from caching requests this.noCacheIE = '&noCacheIE=' + (new Date()).getTime(); // Get the DOM location to put the script tag this.headLoc = document.getElementsByTagName("head").item(0); // Generate a unique script tag id this.scriptId = 'JscriptId' + JSONscriptRequest.scriptCounter++; } // Static script ID counter JSONscriptRequest.scriptCounter = 1; // buildScriptTag method JSONscriptRequest.prototype.buildScriptTag = function () { // Create the script tag this.scriptObj = document.createElement("script"); // Add script object attributes this.scriptObj.setAttribute("type", "text/javascript"); this.scriptObj.setAttribute("charset", "utf-8"); this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE); this.scriptObj.setAttribute("id", this.scriptId); } // removeScriptTag method JSONscriptRequest.prototype.removeScriptTag = function () { // Destroy the script tag this.headLoc.removeChild(this.scriptObj); } // addScriptTag method JSONscriptRequest.prototype.addScriptTag = function () { // Create the script tag this.headLoc.appendChild(this.scriptObj); } Critical line Copyright 2008-2022 E. Horowitz, M. Papa</p> <p> Example Using JSON and JSONscriptRequest class <html><body> // Include the JSONscriptRequest class <script type="text/javascript" src="jsr_class.js"> </script> <script type="text/javascript"> // Define the callback function function getGeo(jsonData) { alert('Latitude = ' + jsonData.ResultSet.Result[0].Latitude + ' Longitude = ' + jsonData.ResultSet.Result[0].Longitude); bObj.removeScriptTag(); } // The web service call var req = 'http://api.local.yahoo.com/MapsService/V1/geocode?appid=YahooDemo&output=json&callback=getGeo&location=94107'; // Create a new request object bObj = new JSONscriptRequest(req); // Build the dynamic script tag bObj.buildScriptTag(); // Add the script tag to the page bObj.addScriptTag(); </script></body></html><br /> buildScriptTag creates<br /> <script src=“getGeo({"ResultSet":{"Result":[{"precision":"zip”,...><br /> Adding the <script> tag to the page causes getGeo to be called And the JSON-encoded data to be passed to the getGeo function; The JavaScript interpreter automatically turns JSON into a JavaScript object, and the returned data can be referenced Immediately. See:<br /> https://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html<br /> Copyright 2008-2022 E. Horowitz, M. Papa 22</p> <p> Tiingo.com Example<br /> • Tiingo provides Stock Lookup and Stock Quote APIs. Results are in JSON format.<br /> • To access the service, you do not need an Application ID.<br /> • Stock End-of-Day Quote JSON REST call looks like this: https://api.tiingo.com/tiingo/daily/aapl/prices?startDate=2019-01-<br /> 02&token=<token><br /> • Response:<br /> [ { "date":"2019-01-02T00:00:00.000Z", "close":157.92, "high":158.85, "low":154.23, "open":154.89, "volume":37039737, "adjClose":157.92, "adjHigh":158.85, "adjLow":154.23, "adjOpen":154.89, "adjVolume":37039737, "divCash":0.0, "splitFactor":1.0 }, ... ]<br /> • Crypto Top-of-book JSON REST call looks like this: https://api.tiingo.com/tiingo/crypto/top?tickers=curebtc&token=<token><br /> • Response:<br /> [ { "ticker":"curebtc", "baseCurrency":"cure", "quoteCurrency":"btc", "topOfBookData":[ { "askSize":21.55601545, "bidSize":726.29848588, "lastSaleTimestamp":"2019-01-30T00:19:34.777000+00:00", "lastPrice":1.894e- 05, "askPrice":1.9e-05, "quoteTimestamp":"2019-01- 30T00:44:34.209957+00:00", "bidExchange":"BITTREX", "lastSizeNotional":0.0010885247347072, "lastExchange":"BITTREX", "askExchange":"BITTREX", "bidPrice":1.894e-05, "lastSize":57.47226688 } ] } ]<br /> Copyright 2008-2022 E. Horowitz, M. Papa 23</p> <p> XMLHttpRequest Compared to the Dynamic Script Tag<br /> Cross-browser compatible?<br /> Cross-domain browser security enforced?<br /> Can receive HTTP status codes?<br /> Supports HTTP GET and POST?<br /> Can send/receive HTTP headers?<br /> Can receive XML?<br /> Can receive JSON?<br /> Offers synchronous and asynchronous calls?<br /> XmlHttpRequest No<br /> Dynamic script Tag Yes<br /> No (fails on any HTTP status other than 200)<br /> No (GET only) No<br /> Yes (but only embedded in a JavaScript statement)<br /> Yes (but only embedded in a JavaScript statement)<br /> No (asynchronous only)<br /> Dynamic script tag is used by internet advertisers who use it to pull their ads into a web page<br /> The script tag's main advantages are that it is not bound by the web<br /> browser's cross-domain security restrictions and that it runs identically on more web browsers than XMLHttpRequest.<br /> If your web service<br /> happens to offer JSON output and a callback function, you can easily<br /> access web services from<br /> within your JavaScript applications without having to parse the returned data<br /> * CORS-compatible browsers allow cross-domain XMLHttpRequest<br /> Copyright 2008-2022 E. Horowitz, M. Papa 24</p> <p> Arguments against JSON<br /> • JSON doesn’t have namespaces<br /> • JSON has no validator<br /> – Every application is responsible for validating its inputs<br /> • JSON is not extensible<br /> – But it does not need to be<br /> • JSON is not XML<br /> – But a JavaScript compiler is a JSON decoder<br /> Copyright 2008-2022 E. Horowitz, M. Papa 25</p> <p> Features that make JSON well-suited for data transfer<br /> • It is both a human and machine-readable format;<br /> • It has support for unicode, allowing almost any information in<br /> any human language to be communicated<br /> • The format is self-documenting in that it describes structure and field names as well as specific values<br /> • The strict syntax and parsing requirements allow the parsing algorithms to remain simple, efficient, and consistent<br /> • JSON has the ability to represent the most general of computer science data structures: records, lists and trees<br /> Copyright 2008-2022 E. Horowitz, M. Papa 26</p> <p> eval() and JSON.parse() Security<br /> • The eval() function is very fast. However, it can compile and execute any JavaScript program, so there can be security issues<br /> • In general<br /> – yourbrowsershouldnottrustmachinesnotunderyourabsolute<br /> – Yourservermustvalidateeverythingtheclienttellsit<br /> • To help guard the browser from insecure JSON input, use JSON.parse() instead of eval ; e.g., JSON.parse() is used this way<br /> var myObject = JSON.parse(JSONtext [, reviver]);<br /> • The optional reviver parameter is a function that will be called for every key and value at every level of the result. Each value will be replaced by the result of the reviver function. This can be used to reform generic objects into instances of pseudoclasses, or to transform date strings into Date objects.<br /> Copyright 2008-2022 E. Horowitz, M. Papa 27</p> <p> More on JSON.parse()<br /> • JSON.parse() is included in ECMAScript since 5th Ed. and all recent desktop browsers (Chrome, Firefox 3.5+, IE 8+, Opera 10.5+, Safari 4+) and all mobile browsers. JSON.parse() compiles faster than eval(). See:<br /> https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse<br /> Copyright 2008-2022 E. Horowitz, M. Papa 28</p> <p> More on JSON.parse (cont’d)<br /> • In JavaScript there is a function called JSON.parse. It uses a single call to eval to do the conversion, guarded by a single regexp test to assure that the input is safe.<br /> • The input object is traversed recursively, and various functions are called for each member of the object in post-order (i.e. every object is reviewed after all its members have been reviewed).<br /> • For each member, the following occurs:<br /> – If reviewer returns a valid value, the member value is replaced with the value returned by reviewer.<br /> – If reviewer returns what it received, the structure is not modified.<br /> – If reviewer returns null or undefined, the object member is deleted.<br /> • The reviewer argument is often used to transform JSON representation of ISO date strings into UTC format Date objects.<br /> • Here is the original source code for JSON.parse<br /> JSON.parse = function (text) {<br /> return (/^(\s|[,:{}\[\]]|"(\\["\\bfnrtu]|[^\x00-\x1f"\\])*"|- ?\d+(\.\d*)?([eE][+-]?\d+)?|true|false|null)+$/.test(text)) && eval('(' + text + ')'); };<br /> • According to Doug Crockford, “It is ugly, but it is really efficient. “<br /> • For the actual source implementation and explanation of the behavior of the "reference implementation"<br /> of JSON.parse see<br /> – https://github.com/douglascrockford/JSON-js<br /> – (for applications that need to run on obsolete browsers)<br /> • JQuery provides implicit ParseJSON() method and responseJSON property. See<br /> – http://api.jquery.com/jquery.parsejson/ and http://api.jquery.com/jQuery.ajax/<br /> Copyright 2008-2022 E. Horowitz, M. Papa 29</p> <p> Discusses AJAX<br /> • https://www.youtube.com/watch?v=-C-JoyNuQJs<br /> • Start video at -27 minutes and run it as long as it is interesting<br /> • He gets to JSON at -13 minutes<br /> Copyright 2008-2022 E. Horowitz, M. Papa 30</p> <p>• JSONP or "JSON with padding" is a JSON extension wherein the name of a callback function is specified as an input argument of the call itself.<br /> • It is now used by many Web 2.0 applications such as Dojo Toolkit Applications or Google Toolkit Applications.<br /> • Further extensions of this protocol have been proposed<br /> • Because JSONP makes use of script tags, calls are essentially open to the world. For<br /> that reason, JSONP may be inappropriate to carry sensitive data<br /> • JSONP is supported by jQuery. See:<br /> https://learn.jquery.com/ajax/working-with-jsonp/<br /> Copyright 2008-2022 E. Horowitz, M. Papa 31</p> <p> JSONP Example<br /> • Consider the following <script> tag which includes a src attribute refer</p> <p>程序代写 <a href="https://powcoder.com/tag/代考/">CS代考</a> 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com</p> </div><!-- .entry-content .clear --> </div> </article><!-- #post-## --> <nav class="navigation post-navigation" aria-label="Post navigation"> <span class="screen-reader-text">Post navigation</span> <div class="nav-links"><div class="nav-previous"><a title="程序代做 COMP 424 - Artificial Intelligence Informed Search" href="https://powcoder.com/2020/06/26/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%81%9a-comp-424-artificial-intelligence-informed-search/" rel="prev"><span class="ast-left-arrow">←</span> Previous Post</a></div><div class="nav-next"><a title="代写代考 CSSE 304 Days 27 - 29" href="https://powcoder.com/2020/06/26/%e4%bb%a3%e5%86%99%e4%bb%a3%e8%80%83-csse-304-days-27-29/" rel="next">Next Post <span class="ast-right-arrow">→</span></a></div></div> </nav><div class="ast-single-related-posts-container ast-container--fallback"><div class="ast-related-posts-title-section"> <h2 class="ast-related-posts-title"> Related Posts </h2> </div><div class="ast-related-posts-wrapper"> <article class="ast-related-post post-38 post type-post status-publish format-standard hentry category-uncategorized tag-matlab tag-simulation"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/matlab-simulation/" target="_self" rel="bookmark noopener noreferrer">matlab simulation</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/matlab/" rel="tag">matlab代写代考</a>, <a href="https://powcoder.com/tag/simulation/" rel="tag">simulation</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-39 post type-post status-publish format-standard hentry category-uncategorized tag-c"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/ab202-assignment-1-arkapong/" target="_self" rel="bookmark noopener noreferrer">AB202 Assignment 1: Arkapong</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/c/" rel="tag">c++代做</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-40 post type-post status-publish format-standard hentry category-uncategorized tag-c"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/msc-c-programming/" target="_self" rel="bookmark noopener noreferrer">MSc C++ Programming</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/c/" rel="tag">c++代做</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-41 post type-post status-publish format-standard hentry category-uncategorized tag-prolog"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/msc-assessed-prolog-lab-exercise-2/" target="_self" rel="bookmark noopener noreferrer">MSc Assessed Prolog Lab Exercise 2</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/prolog/" rel="tag">Prolog代写代考</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-49 post type-post status-publish format-standard hentry category-uncategorized tag-c tag-uml"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/spring-session2015assignment-1/" target="_self" rel="bookmark noopener noreferrer">Spring Session:2015:Assignment 1</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/c/" rel="tag">c++代做</a>, <a href="https://powcoder.com/tag/uml/" rel="tag">UML</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-51 post type-post status-publish format-standard hentry category-uncategorized tag-uml"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/assignment-2-inception-and-elaboration/" target="_self" rel="bookmark noopener noreferrer">Assignment 2: "Inception and Elaboration"</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/uml/" rel="tag">UML</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-55 post type-post status-publish format-standard hentry category-uncategorized tag-android tag-java"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/android-app/" target="_self" rel="bookmark noopener noreferrer">android app</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/android/" rel="tag">android</a>, <a href="https://powcoder.com/tag/java/" rel="tag">Java代写代考</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-57 post type-post status-publish format-standard hentry category-uncategorized tag-java tag-junit"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/comp220-software-development-tools/" target="_self" rel="bookmark noopener noreferrer">COMP220: Software Development Tools</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/java/" rel="tag">Java代写代考</a>, <a href="https://powcoder.com/tag/junit/" rel="tag">junit</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> </div> </div> </main><!-- #main --> </div><!-- #primary --> <div class="widget-area secondary" id="secondary" itemtype="https://schema.org/WPSideBar" itemscope="itemscope"> <div class="sidebar-main" > <aside id="custom_html-2" class="widget_text widget widget_custom_html"><h2 class="widget-title">Contact</h2><div class="textwidget custom-html-widget"><ul> <li><strong>QQ: 1823890830</strong></li> <li><strong>微信号(WeChat): powcoder</strong></li> <li><img data-recalc-dims="1" class="alignnone wp-image-366" src="https://i0.wp.com/powcoder.com/wp-content/uploads/2021/01/powcoder.jpg?resize=133%2C133&ssl=1" alt="myweixin" width="133" height="133"/></li> <li><strong>Email: <a href="mailto:powcoder@163.com">powcoder@163.com</a></strong></li> </ul> <ul> <li><strong>请加微信或QQ发要求</strong></li> <li><strong>Contact me through WeChat</strong></li> </ul> </div></aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2><nav aria-label="Categories"> <ul> <li class="cat-item cat-item-245"><a href="https://powcoder.com/category/machine-learning/">机器学习代写代考 machine learning</a> </li> <li class="cat-item cat-item-242"><a href="https://powcoder.com/category/database-db-sql/">数据库代写代考 DB Database SQL</a> </li> <li class="cat-item cat-item-244"><a href="https://powcoder.com/category/data-structure-algorithm/">数据结构算法代写代考 data structure algorithm</a> </li> <li class="cat-item cat-item-239"><a href="https://powcoder.com/category/%e4%ba%ba%e5%b7%a5%e6%99%ba%e8%83%bd-ai-artificial-intelligence/">人工智能 AI Artificial Intelligence</a> </li> <li class="cat-item cat-item-247"><a href="https://powcoder.com/category/compiler/">编译器原理 Compiler</a> </li> <li class="cat-item cat-item-254"><a href="https://powcoder.com/category/network-socket/">计算机网络 套接字编程 computer network socket programming</a> </li> <li class="cat-item cat-item-240"><a href="https://powcoder.com/category/hadoop-map-reduce-spark-hbase/">大数据 Hadoop Map Reduce Spark HBase</a> </li> <li class="cat-item cat-item-241"><a href="https://powcoder.com/category/%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9fosoperating-system/">操作系统OS代写代考 (Operating System)</a> </li> <li class="cat-item cat-item-250"><a href="https://powcoder.com/category/computer-architecture/">计算机体系结构代写代考 Computer Architecture</a> </li> <li class="cat-item cat-item-251"><a href="https://powcoder.com/category/computer-graphics-opengl-webgl/">计算机图形学 Computer Graphics opengl webgl</a> </li> <li class="cat-item cat-item-249"><a href="https://powcoder.com/category/nlp/">自然语言处理 NLP natural language processing</a> </li> <li class="cat-item cat-item-383"><a href="https://powcoder.com/category/%e5%b9%b6%e8%a1%8c%e8%ae%a1%e7%ae%97/">并行计算</a> </li> <li class="cat-item cat-item-253"><a href="https://powcoder.com/category/computation-theory/">计算理论 Theory of Computation</a> </li> <li class="cat-item cat-item-252"><a href="https://powcoder.com/category/computer-security/">计算机安全密码学computer security cryptography</a> </li> <li class="cat-item cat-item-246"><a href="https://powcoder.com/category/sys-programming/">系统编程 System programming</a> </li> <li class="cat-item cat-item-367"><a href="https://powcoder.com/category/%e6%95%b0%e5%80%bc%e7%a7%91%e5%ad%a6%e8%ae%a1%e7%ae%97/">数值科学计算</a> </li> <li class="cat-item cat-item-255"><a href="https://powcoder.com/category/%e8%ae%a1%e7%ae%97%e6%9c%ba%e8%a7%86%e8%a7%89compute-vision/">计算机视觉代写代考(Compute Vision)</a> </li> <li class="cat-item cat-item-248"><a href="https://powcoder.com/category/web/">网页应用 Web Application</a> </li> <li class="cat-item cat-item-401"><a href="https://powcoder.com/category/%e5%88%86%e5%b8%83%e5%bc%8f%e7%b3%bb%e7%bb%9f/">分布式系统</a> </li> <li class="cat-item cat-item-640"><a href="https://powcoder.com/category/%e7%ac%94%e8%af%95%e9%9d%a2%e8%af%95/">笔试面试</a> </li> <li class="cat-item cat-item-403"><a href="https://powcoder.com/category/%e5%87%bd%e6%95%b0%e5%bc%8f%e7%bc%96%e7%a8%8b/">函数式编程</a> </li> <li class="cat-item cat-item-243"><a href="https://powcoder.com/category/%e6%95%b0%e6%8d%ae%e6%8c%96%e6%8e%98-data-mining/">数据挖掘 Data Mining</a> </li> <li class="cat-item cat-item-364"><a href="https://powcoder.com/category/%e7%a6%bb%e6%95%a3%e6%95%b0%e5%ad%a6/">离散数学代写代考 (Discrete mathematics)</a> </li> <li class="cat-item cat-item-384"><a href="https://powcoder.com/category/%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b/">软件工程</a> </li> <li class="cat-item cat-item-551"><a href="https://powcoder.com/category/%e7%bc%96%e7%a8%8b%e8%af%ad%e8%a8%80-programming-language/">编程语言 Programming Language</a> </li> <li class="cat-item cat-item-594"><a href="https://powcoder.com/category/%e7%bb%9f%e8%ae%a1%e4%bb%a3%e5%86%99%e4%bb%a3%e8%80%83/">统计代写代考</a> </li> <li class="cat-item cat-item-574"><a href="https://powcoder.com/category/%e8%bf%90%e7%ad%b9%e5%ad%a6-operation-research/">运筹学 Operation Research</a> </li> </ul> </nav></aside><aside id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widget-title">Tag</h2><nav aria-label="Tag"><div class="tagcloud"><a href="https://powcoder.com/tag/algorithm/" class="tag-cloud-link tag-link-469 tag-link-position-1" style="font-size: 18px;" aria-label="Algorithm算法代写代考 (15,143 items)">Algorithm算法代写代考</a><a href="https://powcoder.com/tag/java/" class="tag-cloud-link tag-link-298 tag-link-position-2" style="font-size: 16.91156462585px;" aria-label="Java代写代考 (7,271 items)">Java代写代考</a><a href="https://powcoder.com/tag/database/" class="tag-cloud-link tag-link-414 tag-link-position-3" style="font-size: 16.503401360544px;" aria-label="database (5,442 items)">database</a><a href="https://powcoder.com/tag/data-structure/" class="tag-cloud-link tag-link-501 tag-link-position-4" style="font-size: 16.401360544218px;" aria-label="data structure (5,185 items)">data structure</a><a href="https://powcoder.com/tag/python/" class="tag-cloud-link tag-link-331 tag-link-position-5" style="font-size: 16.299319727891px;" aria-label="Python代写代考 (4,809 items)">Python代写代考</a><a href="https://powcoder.com/tag/compiler/" class="tag-cloud-link tag-link-472 tag-link-position-6" style="font-size: 16.027210884354px;" aria-label="compiler (4,000 items)">compiler</a><a href="https://powcoder.com/tag/scheme/" class="tag-cloud-link tag-link-338 tag-link-position-7" style="font-size: 15.823129251701px;" aria-label="Scheme代写代考 (3,502 items)">Scheme代写代考</a><a href="https://powcoder.com/tag/c-4/" class="tag-cloud-link tag-link-499 tag-link-position-8" style="font-size: 15.823129251701px;" aria-label="C语言代写 (3,489 items)">C语言代写</a><a href="https://powcoder.com/tag/ai/" class="tag-cloud-link tag-link-369 tag-link-position-9" style="font-size: 15.176870748299px;" aria-label="AI代写 (2,216 items)">AI代写</a><a href="https://powcoder.com/tag/c-3/" class="tag-cloud-link tag-link-491 tag-link-position-10" style="font-size: 14.700680272109px;" aria-label="c++代写 (1,633 items)">c++代写</a><a href="https://powcoder.com/tag/sql/" class="tag-cloud-link tag-link-395 tag-link-position-11" style="font-size: 14.530612244898px;" aria-label="SQL代写代考 (1,457 items)">SQL代写代考</a><a href="https://powcoder.com/tag/haskell/" class="tag-cloud-link tag-link-291 tag-link-position-12" style="font-size: 14.530612244898px;" aria-label="Haskell代写代考 (1,453 items)">Haskell代写代考</a><a href="https://powcoder.com/tag/javascript/" class="tag-cloud-link tag-link-299 tag-link-position-13" style="font-size: 14.462585034014px;" aria-label="javascript (1,395 items)">javascript</a><a href="https://powcoder.com/tag/concurrency/" class="tag-cloud-link tag-link-503 tag-link-position-14" style="font-size: 14.428571428571px;" aria-label="concurrency (1,355 items)">concurrency</a><a href="https://powcoder.com/tag/matlab/" class="tag-cloud-link tag-link-309 tag-link-position-15" style="font-size: 14.360544217687px;" aria-label="matlab代写代考 (1,281 items)">matlab代写代考</a><a href="https://powcoder.com/tag/finance/" class="tag-cloud-link tag-link-282 tag-link-position-16" style="font-size: 14.292517006803px;" aria-label="finance (1,221 items)">finance</a><a href="https://powcoder.com/tag/interpreter/" class="tag-cloud-link tag-link-297 tag-link-position-17" style="font-size: 14.190476190476px;" aria-label="interpreter (1,144 items)">interpreter</a><a href="https://powcoder.com/tag/mips/" class="tag-cloud-link tag-link-313 tag-link-position-18" style="font-size: 14.156462585034px;" aria-label="MIPS汇编代写代考 (1,134 items)">MIPS汇编代写代考</a><a href="https://powcoder.com/tag/data-mining/" class="tag-cloud-link tag-link-271 tag-link-position-19" style="font-size: 13.986394557823px;" aria-label="data mining (990 items)">data mining</a><a href="https://powcoder.com/tag/decision-tree/" class="tag-cloud-link tag-link-273 tag-link-position-20" style="font-size: 13.952380952381px;" aria-label="decision tree (982 items)">decision tree</a><a href="https://powcoder.com/tag/deep-learning/" class="tag-cloud-link tag-link-274 tag-link-position-21" style="font-size: 13.952380952381px;" aria-label="deep learning深度学习代写代考 (980 items)">deep learning深度学习代写代考</a><a href="https://powcoder.com/tag/prolog/" class="tag-cloud-link tag-link-329 tag-link-position-22" style="font-size: 13.918367346939px;" aria-label="Prolog代写代考 (957 items)">Prolog代写代考</a><a href="https://powcoder.com/tag/file-system/" class="tag-cloud-link tag-link-281 tag-link-position-23" style="font-size: 13.850340136054px;" aria-label="file system (902 items)">file system</a><a href="https://powcoder.com/tag/c/" class="tag-cloud-link tag-link-265 tag-link-position-24" style="font-size: 13.578231292517px;" aria-label="c++代做 (764 items)">c++代做</a><a href="https://powcoder.com/tag/computer-architecture/" class="tag-cloud-link tag-link-507 tag-link-position-25" style="font-size: 13.47619047619px;" aria-label="computer architecture (712 items)">computer architecture</a><a href="https://powcoder.com/tag/er/" class="tag-cloud-link tag-link-433 tag-link-position-26" style="font-size: 13.47619047619px;" aria-label="ER (711 items)">ER</a><a href="https://powcoder.com/tag/gui/" class="tag-cloud-link tag-link-290 tag-link-position-27" style="font-size: 13.47619047619px;" aria-label="gui (711 items)">gui</a><a href="https://powcoder.com/tag/gpu/" class="tag-cloud-link tag-link-396 tag-link-position-28" style="font-size: 13.272108843537px;" aria-label="GPU (620 items)">GPU</a><a href="https://powcoder.com/tag/data-science/" class="tag-cloud-link tag-link-272 tag-link-position-29" style="font-size: 13.272108843537px;" aria-label="data science (615 items)">data science</a><a href="https://powcoder.com/tag/x86%e6%b1%87%e7%bc%96/" class="tag-cloud-link tag-link-514 tag-link-position-30" style="font-size: 13.238095238095px;" aria-label="x86汇编代写代考 (606 items)">x86汇编代写代考</a><a href="https://powcoder.com/tag/case-study/" class="tag-cloud-link tag-link-468 tag-link-position-31" style="font-size: 13.204081632653px;" aria-label="case study (586 items)">case study</a><a href="https://powcoder.com/tag/distributed-system/" class="tag-cloud-link tag-link-277 tag-link-position-32" style="font-size: 13.170068027211px;" aria-label="distributed system (576 items)">distributed system</a><a href="https://powcoder.com/tag/android/" class="tag-cloud-link tag-link-256 tag-link-position-33" style="font-size: 13.034013605442px;" aria-label="android (527 items)">android</a><a href="https://powcoder.com/tag/kernel/" class="tag-cloud-link tag-link-470 tag-link-position-34" style="font-size: 13.034013605442px;" aria-label="kernel (520 items)">kernel</a><a href="https://powcoder.com/tag/arm/" class="tag-cloud-link tag-link-483 tag-link-position-35" style="font-size: 13px;" aria-label="ARM汇编代写代考 (514 items)">ARM汇编代写代考</a></div> </nav></aside><aside id="block-4" class="widget widget_block"> <div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow"><div class="wp-block-group__inner-container"><ul class="wp-block-latest-posts__list wp-block-latest-posts"><li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/10/12/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%86%99-comp2521-24t3-assignment-1-2/">程序代写 COMP2521 24T3 – Assignment 1</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/10/12/%e4%bb%a3%e5%86%99%e4%bb%a3%e8%80%83-compsys-705-formal-methods-for-safety-critical-software-test-17-october-20/">代写代考 COMPSYS 705 Formal Methods for Safety Critical Software Test, 17 October 20</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/10/07/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%86%99-comp2521-24t3-assignment-1/">程序代写 COMP2521 24T3 – Assignment 1</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/09/30/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%86%99-comp4500-7500-2/">程序代写 COMP4500/7500</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/09/30/%e4%bb%a3%e5%86%99%e4%bb%a3%e8%80%83-comp4161-t3-2024-advanced-topics-in-software-verification/">代写代考 COMP4161 T3/2024 Advanced Topics in Software Verification</a></li> </ul></div></div> </aside> </div><!-- .sidebar-main --> </div><!-- #secondary --> </div> <!-- ast-container --> </div><!-- #content --> <footer class="site-footer" id="colophon" itemtype="https://schema.org/WPFooter" itemscope="itemscope" itemid="#colophon"> <div class="site-below-footer-wrap ast-builder-grid-row-container site-footer-focus-item ast-builder-grid-row-full ast-builder-grid-row-tablet-full ast-builder-grid-row-mobile-full ast-footer-row-stack ast-footer-row-tablet-stack ast-footer-row-mobile-stack" data-section="section-below-footer-builder"> <div class="ast-builder-grid-row-container-inner"> <div class="ast-builder-footer-grid-columns site-below-footer-inner-wrap ast-builder-grid-row"> <div class="site-footer-below-section-1 site-footer-section site-footer-section-1"> <div class="ast-builder-layout-element ast-flex site-footer-focus-item ast-footer-copyright" data-section="section-footer-builder"> <div class="ast-footer-copyright"><p>Copyright © 2024 PowCoder代写 | Powered by <a href="https://wpastra.com/" rel="nofollow noopener" target="_blank">Astra WordPress Theme</a></p> </div> </div> </div> </div> </div> </div> </footer><!-- #colophon --> </div><!-- #page --> <link rel="stylesheet" href="https://powcoder.com/wp-content/cache/minify/12163.css" media="all" /> <script id="astra-theme-js-js-extra"> var astra = {"break_point":"921","isRtl":"","is_scroll_to_id":"","is_scroll_to_top":"","is_header_footer_builder_active":"1","responsive_cart_click":"flyout"}; </script> <script src="https://powcoder.com/wp-content/cache/minify/75800.js"></script> <script src="https://stats.wp.com/e-202445.js" id="jetpack-stats-js" data-wp-strategy="defer"></script> <script id="jetpack-stats-js-after"> _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"132118579\",\"post\":\"73022\",\"tz\":\"8\",\"srv\":\"powcoder.com\",\"j\":\"1:13.9.1\"}") ]); _stq.push([ "clickTrackerInit", "132118579", "73022" ]); </script> <script> /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); </script> </body> </html> <!-- Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/ Object Caching 275/355 objects using Disk Page Caching using Disk: Enhanced Content Delivery Network via N/A Minified using Disk Served from: powcoder.com @ 2024-11-06 14:04:06 by W3 Total Cache -->