mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-31 13:20:59 +00:00 
			
		
		
		
	AK: JsonParser improvements
- Parsing invalid JSON no longer asserts
    Instead of asserting when coming across malformed JSON,
    JsonParser::parse now returns an Optional<JsonValue>.
- Disallow trailing commas in JSON objects and arrays
- No longer parse 'undefined', as that is a purely JS thing
- No longer allow non-whitespace after anything consumed by the initial
  parse() call. Examples of things that were valid and no longer are:
    - undefineddfz
    - {"foo": 1}abcd
    - [1,2,3]4
- JsonObject.for_each_member now iterates in original insertion order
			
			
This commit is contained in:
		
							parent
							
								
									39576b2238
								
							
						
					
					
						commit
						e8e728454c
					
				
				
				Notes:
				
					sideshowbarker
				
				2024-07-19 05:40:46 +09:00 
				
			
			Author: https://github.com/mattco98
Commit: e8e728454c
Pull-request: https://github.com/SerenityOS/serenity/pull/2545
Reviewed-by: https://github.com/Dexesttp
Reviewed-by: https://github.com/awesomekling
			
					 29 changed files with 189 additions and 118 deletions
				
			
		|  | @ -56,7 +56,8 @@ int main(int argc, char** argv) | |||
|         return 1; | ||||
| 
 | ||||
|     auto json = JsonValue::from_string(file->read_all()); | ||||
|     ASSERT(json.is_object()); | ||||
|     ASSERT(json.has_value()); | ||||
|     ASSERT(json.value().is_object()); | ||||
| 
 | ||||
|     out() << "#pragma once"; | ||||
|     out() << "#include <AK/StringView.h>"; | ||||
|  | @ -67,7 +68,7 @@ int main(int argc, char** argv) | |||
|     out() << "enum class PropertyID {"; | ||||
|     out() << "    Invalid,"; | ||||
| 
 | ||||
|     json.as_object().for_each_member([&](auto& name, auto& value) { | ||||
|     json.value().as_object().for_each_member([&](auto& name, auto& value) { | ||||
|         ASSERT(value.is_object()); | ||||
|         out() << "    " << title_casify(name) << ","; | ||||
|     }); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Matthew Olsson
						Matthew Olsson