mirror of
				https://github.com/esphome/esphome.git
				synced 2025-11-03 16:41:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
json:
 | 
						|
 | 
						|
interval:
 | 
						|
  - interval: 60s
 | 
						|
    then:
 | 
						|
      - lambda: |-
 | 
						|
          // Test build_json
 | 
						|
          std::string json_str = esphome::json::build_json([](JsonObject root) {
 | 
						|
            root["sensor"] = "temperature";
 | 
						|
            root["value"] = 23.5;
 | 
						|
            root["unit"] = "°C";
 | 
						|
          });
 | 
						|
          ESP_LOGD("test", "Built JSON: %s", json_str.c_str());
 | 
						|
 | 
						|
          // Test parse_json
 | 
						|
          bool parse_ok = esphome::json::parse_json(json_str, [](JsonObject root) {
 | 
						|
            if (root.containsKey("sensor") && root.containsKey("value")) {
 | 
						|
              const char* sensor = root["sensor"];
 | 
						|
              float value = root["value"];
 | 
						|
              ESP_LOGD("test", "Parsed: sensor=%s, value=%.1f", sensor, value);
 | 
						|
            } else {
 | 
						|
              ESP_LOGD("test", "Parsed JSON missing required keys");
 | 
						|
            }
 | 
						|
          });
 | 
						|
          ESP_LOGD("test", "Parse result (JSON syntax only): %s", parse_ok ? "success" : "failed");
 | 
						|
 | 
						|
          // Test JsonBuilder class
 | 
						|
          esphome::json::JsonBuilder builder;
 | 
						|
          JsonObject obj = builder.root();
 | 
						|
          obj["test"] = "direct_builder";
 | 
						|
          obj["count"] = 42;
 | 
						|
          std::string result = builder.serialize();
 | 
						|
          ESP_LOGD("test", "JsonBuilder result: %s", result.c_str());
 |