ios - 如何在swift中为每个循环附加字符串
问题描述
我想解析 json 字符串并显示在 UITextView 中。我正在使用带有键和值的 HTML 字符串获取数据。这是来自服务器的以下示例字符串响应,
{"":"<strong>Adidas<\/strong><br>Enjoy 10% off","Period":"10 Oct 2019 - 11 Nov 2019","Description":"<p>Enjoy 30% off
"Terms & Conditons":"<ol>\n<li>It's available only in peak hours<\/li>\n}
我需要用 HTML 显示如下格式,
Expected output:
Adidas
Enjoy 10% off
Period:
10 Oct 2019 - 11 Nov 2019
Description:
Enjoy 30% off.
Terms & Conditons:
It's available only in peak hours
我已经使用字典并提取了数据,但问题是数据的顺序不是按顺序排列的。
func setupData(responseString : String)
{
// Convert string to dictionary for extracting the keys and values
// Need to maintain the order while adding the data
let content = convertToDictionary(text: responseString)
var text : String = ""
if let contentDataDict = content
{
for (key, value) in contentDataDict
{
// want to append the key and values in the sequence order
textView.attributedText = text.htmlToAttributedString
}
}
}
如何根据预期输出解析和显示数据。
解决方案
Devan,你认为字典不起作用是对的。您最好将 html 加载到数组中。我使用伪代码来代表一个新convertToArray
的来替换你的convertToDictionary
,因为你没有提供所有的原始代码
struct Component {
field: String
value: String
}
func convertToArray(response: String) -> [Component] [
let components = [Component]()
for entries in response {
//extract key/value pairs from html as before
//then create a component struct with them and add it to the array
components.append(Component(field: key, value: value)
}
return components //now a sequence of structs represent your data in order
}
func setupData(responseString : String) {
let components: [Component] = convertToArray(text: responseString)
for component in components {
//add component.field and component.value to your attributed text string
//and then display as before
}
}
推荐阅读
- python - 如何将 3 维数组保存到 csv 文件中?
- sql-server - 如果行不存在如何输出行
- mysql - 从 --alldatabase.sql.gz 提取单个数据库
- r - "UseMethod("xml_add_child") 中的错误" test_dir 不起作用
- python - python - 如何在python中使用numpy和matplotlib绘制二维数据的最大和最小特征向量?
- c# - 连接字符串有时在 ServiceBusTrigger 中不可用
- linux - 使用Visual GDB将MSVC2010代码迁移到linux
- django - 如何将标签网址添加到 sitemap.xml?
- amazon-web-services - 使用 s3 作为数据库而不是 dynamodb
- javascript - Chrome 扩展程序:无法获取背景以将消息发送到内容脚本