C# 将API写入文件

C# 将API写入文件,c#,android,json,api,xamarin,C#,Android,Json,Api,Xamarin,你好,我是android开发的初学者 我在C#上用xamarin编写android应用程序。我有关于产品清单的活动 从API解析产品 例如: 数组 ( [0]=>WP\u Post对象 ( [ID]=>4538 [post_author]=>7 [发布日期]=>2015-10-11 21:42:27 [发布日期格林尼治标准时间]=>2015-10-11 17:42:27 [发布内容]=> [职位名称]=>ФФіЮЮзззЮ [会后摘录]=>ааС、Лаа、ааа、СааФааа、СаааФаа

你好,我是android开发的初学者

我在C#上用xamarin编写android应用程序。我有关于产品清单的活动

从API解析产品

例如:

数组
(
[0]=>WP\u Post对象
(
[ID]=>4538
[post_author]=>7
[发布日期]=>2015-10-11 21:42:27
[发布日期格林尼治标准时间]=>2015-10-11 17:42:27
[发布内容]=>
[职位名称]=>ФФіЮЮзззЮ
[会后摘录]=>ааС、Лаа、ааа、СааФааа、СаааФааа
[发布状态]=>发布
[评论\u状态]=>打开
[ping_状态]=>已关闭
[发布密码]=>
[职位名称]=>rol-filadelfiya-z-lososem
[致吴平]=>
[ping]=>
[修改后]=>2015-10-12 10:41:11
[修改后的格林尼治标准时间]=>2015-10-12 06:41:11
[发布内容过滤]=>
[post_parent]=>0
[guid]=>http://new.murakami.ua/shop/rol-filadelfiya-z-lososem/
[菜单顺序]=>0
[post_type]=>产品
[后置mime类型]=>
[注释计数]=>0
[过滤器]=>原始
[img_url]=>http://new.murakami.ua/wp-content/uploads/Rol-Filadelfiya-z-lososem1.jpg
[可见性]=>可见
[价格]=>106.00
[重量]=>215
[能量]=>0
[sku]=>423
[类别]=>87
)
[1] =>WP_Post对象
(
[ID]=>4533
[post_author]=>4
[发布日期]=>2015-10-09 17:32:51
[发布日期格林尼治标准时间]=>2015-10-09 13:32:51
[发布内容]=>
[职位名称]=>bабі
[课后摘录]=>а1ааааа2а;а1ааа4аа;аааа
[发布状态]=>发布
[评论\u状态]=>打开
[ping_状态]=>已关闭
[发布密码]=>
[post_name]=>vasabi
[致吴平]=>
[ping]=>
[修改后]=>2015-10-11 22:22:19
[修改后的格林尼治标准时间]=>2015-10-11 18:22:19
[发布内容过滤]=>
[post_parent]=>0
[guid]=>http://new.murakami.ua/shop/vasabi/
[菜单顺序]=>0
[post_type]=>产品
[后置mime类型]=>
[注释计数]=>0
[过滤器]=>原始
[img_url]=>http://new.murakami.ua/wp-content/uploads/Vasabi.jpg
[可见性]=>可见
[价格]=>7.00
[重量]=>4
[能源]=>
[sku]=>822
[类别]=>90
)
[2] =>WP_Post对象
(
[ID]=>4378
[post_author]=>4
[发布日期]=>2015-10-01 12:47:54
[发布日期格林尼治标准时间]=>2015-10-01 08:47:54
[发布内容]=>
[职位名称]=>
[会后摘录]=>卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫卡夫
[发布状态]=>发布
[评论\u状态]=>打开
[ping_状态]=>已关闭
[发布密码]=>
[post_name]=>yamato-0
[致吴平]=>
[ping]=>
[修改后]=>2015-10-08 14:38:18
[修改后的格林尼治标准时间]=>2015-10-08 10:38:18
[发布内容过滤]=>
[post_parent]=>0
[guid]=>http://new.murakami.ua/shop/yamato-0/
[菜单顺序]=>0
[post_type]=>产品
[后置mime类型]=>
[注释计数]=>0
[过滤器]=>原始
[img_url]=>http://new.murakami.ua/wp-content/uploads/YAmato.jpg
[可见性]=>可见
[价格]=>99.00
[重量]=>225/110/175
[能源]=>
[sku]=>172
[类别]=>182

)
写入和读取文件非常简单:

string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string filename = Path.Combine(path, "myfile.txt");

using (var streamWriter = new StreamWriter(filename, true))
{
     streamWriter.WriteLine(DateTime.UtcNow);
}

using (var streamReader = new StreamReader(filename))
{
     string content = streamReader.ReadToEnd();
     System.Diagnostics.Debug.WriteLine(content);
}

@CDrosos提出的建议应该有效,我有一点:-)

此外,您还可以使用file.writealText(内部使用StreamWriter)将文本字符串持久化到文件中,但使用起来要简单得多:

bool SaveJson(string json)
{
   var documentFolder = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments); 
   var fileNamePath = Path.Combine (documentFolder, "Products.json");
   File.WriteAllText(fileNamePath, json);

   return File.Exists(fileNamePath);
}
当然,您可以使此方法更通用,以便允许传递文件名和默认文件夹路径等。其他类也可以使用它。允许您的代码相当枯燥(不要重复自己的原则):

然后SaveJson可以重构为:

bool SaveJson(string json)
{
    return SaveText
           (
              json
              , "Products.json"
              , Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments)
           );
}

据我所知,这行代码streamWriter.WriteLine(DateTime.UtcNow);写入特定信息我需要通过链接写入所有文本如何执行?用包含所有文本的变量替换DateTime.UtcNow
bool SaveJson(string json)
{
    return SaveText
           (
              json
              , "Products.json"
              , Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments)
           );
}