Mercurial Hosting > luan
comparison src/luan/Luan.java @ 1802:ca98dee04e08 default tip
add Parsers.json_null
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 21 Apr 2024 21:25:15 -0600 |
parents | 8df0b80e715e |
children |
comparison
equal
deleted
inserted
replaced
1801:32e77b071e09 | 1802:ca98dee04e08 |
---|---|
421 throws LuanException | 421 throws LuanException |
422 { | 422 { |
423 return load(text,sourceName,persist,null); | 423 return load(text,sourceName,persist,null); |
424 } | 424 } |
425 | 425 |
426 public static Object toJava(Object obj) throws LuanException { | 426 public static Object toJava(Object obj,Object nullValue) throws LuanException { |
427 if( obj == nullValue ) | |
428 return null; | |
427 if( !(obj instanceof LuanTable) ) | 429 if( !(obj instanceof LuanTable) ) |
428 return obj; | 430 return obj; |
429 LuanTable tbl = (LuanTable)obj; | 431 LuanTable tbl = (LuanTable)obj; |
430 if( !tbl.isMap() ) { | 432 if( !tbl.isMap() ) { |
431 List list = new ArrayList(); | 433 List list = new ArrayList(); |
432 for( Object el : tbl.asList() ) { | 434 for( Object el : tbl.asList() ) { |
433 list.add( toJava(el) ); | 435 list.add( toJava(el,nullValue) ); |
434 } | 436 } |
435 return list; | 437 return list; |
436 } else { | 438 } else { |
437 Map map = new LinkedHashMap(); | 439 Map map = new LinkedHashMap(); |
438 Iterator<Map.Entry> iter = tbl.rawIterator(); | 440 Iterator<Map.Entry> iter = tbl.rawIterator(); |
439 while( iter.hasNext() ) { | 441 while( iter.hasNext() ) { |
440 Map.Entry entry = iter.next(); | 442 Map.Entry entry = iter.next(); |
441 map.put( toJava(entry.getKey()), toJava(entry.getValue()) ); | 443 map.put( toJava(entry.getKey(),nullValue), toJava(entry.getValue(),nullValue) ); |
442 } | 444 } |
443 return map; | 445 return map; |
444 } | 446 } |
445 } | 447 } |
446 | 448 |