https://github.com/noear/snacks
noear::跨平台的轻量级通用数据DOM
https://github.com/noear/snacks
Last synced: about 1 year ago
JSON representation
noear::跨平台的轻量级通用数据DOM
- Host: GitHub
- URL: https://github.com/noear/snacks
- Owner: noear
- License: apache-2.0
- Created: 2015-09-02T08:28:54.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2019-05-27T09:49:41.000Z (about 7 years ago)
- Last Synced: 2025-03-28T00:04:04.789Z (about 1 year ago)
- Language: C#
- Homepage: http://www.noear.org
- Size: 1.78 MB
- Stars: 5
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Snacks for .net/mono/java/android(java)/ios(swift 3.0)/uwp(c#)
轻量级数据DOM,可与XML/JSON相互转换
```java
//反向:::::::::::::::::
//object
ONode n = ONode.tryLoad("{name:'noear',sex:1}");
int sex = n.get("sex").getInt();
String name = n.get("name").getString();
//array
ONode n = ONode.tryLoad("[{id:1,url:'http://xxx.xxx.xx'},{id:2,url:'http://ccc.ccc.ccc'}]");
foreach(ONode n1 in n){
var id = n1.get("id").getLong();
String url = n1.get("url").getString();
}
//反向:::::::::::::::::(如果有unicode需要转码)
//object
ONode n = ONode.tryLoad("{name:'noear',sex:1}").unescape(true);
//正向:::::::::::::::::
//object
ONode n = new ONode();
n.set("name","noear").set("sex",1);
String json = n.toJson(); //or n.toXml(); //或者根据自己情况,增加新的转换
//array
ONode n = new ONode().asArray();
for(int i=0;i<2; i++){
ONode n1 = n.add();
n1.set("id",i)
.set("url","http://xxx.xx.xx/p/"+i);
}
String json = n.toJson();//or n.toXml();
```
一个推送接口的使用示例:
```java
public static void push(Collection alias_ary, String text) {
ONode data = new ONode().exp((d)->{
d.get("platform").val("all");
d.get("audience").get("alias").addAll(alias_ary);
d.get("options")
.set("apns_production",false);
d.get("notification").exp(n->{
n.get("ios")
.set("alert",text)
.set("badge",0)
.set("sound","happy");
});
});
String message = data.toJson();
String author = Base64Util.encode(appKey+":"+masterSecret);
Map headers = new HashMap<>();
headers.put("Content-Type","application/json");
headers.put("Authorization","Basic "+author);
HttpUtil.postString(apiUrl, message, headers);
}
```