mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-10-30 23:42:42 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
		
			545 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			545 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <json/json.h>
 | |
| 
 | |
| namespace waybar::util {
 | |
| 
 | |
| struct JsonParser {
 | |
| 
 | |
|   JsonParser()
 | |
|     : reader_(builder_.newCharReader())
 | |
|   {}
 | |
| 
 | |
|   const Json::Value parse(const std::string& data) const
 | |
|   {
 | |
|     Json::Value root;
 | |
|     std::string err;
 | |
|     bool res =
 | |
|       reader_->parse(data.c_str(), data.c_str() + data.size(), &root, &err);
 | |
|     if (!res)
 | |
|       throw std::runtime_error(err);
 | |
|     return root;
 | |
|   }
 | |
| 
 | |
|   ~JsonParser() = default;
 | |
| 
 | |
| private:
 | |
|   Json::CharReaderBuilder builder_;
 | |
|   std::unique_ptr<Json::CharReader> const reader_;
 | |
| };
 | |
| 
 | |
| }
 | 
